获取token

今天咱们来说说怎么通过代码来获取token获得token的话首先会有甲方提供一些数据给你们类似于这种,token的入参和出参。接着咱们就可以写代码了。/** *获取token *@return */ publicStringgetToken(){ StringshortUrl=WEIXIN_SHORT_TOKEN; //这是一个token的入参url只是…

大家好,又见面了,我是你们的朋友全栈君。

今天咱们来说说怎么通过代码来获取token
获得token的话首先会有甲方提供一些数据给你们

在这里插入图片描述
类似于这种,token的入参和出参。

接着咱们就可以写代码了。

/**
	 * 获取token
	 * @return
	 */
	public String getToken(){
		String shortUrl = WEIXIN_SHORT_TOKEN;	//这是一个token的入参url 只是我把它放到配置文件了。
		logger.info("json_token_short requestUrl:"+ shortUrl);
        String jsonTokenShort = null;
		try {
			jsonTokenShort = httpClientWraper.mockPostJsonNew(shortUrl, null, false);
		} catch (Exception e) {
			e.printStackTrace();
		}
        logger.info("获取jsonTokenShort响应:"+jsonTokenShort);
        Map<String,Object> mapResultShort = (Map)JSON.parse(jsonTokenShort);
//        if (jsonTokenShort.contains("errcode") && !mapResultShort.get("errcode").toString().equals("0")) {
//            throw new GzhBizRuntimeException(mapResultShort.get("errcode").toString(),mapResultShort.get("errmsg").toString());
//        }
        Object tokenShortA = mapResultShort.get("value");
        if(tokenShortA == null){
        	throw new GzhBizRuntimeException(RespCodeEnum.GET_SHORT_TOKEN_ERREO.getRespCode(),
                    RespCodeEnum.GET_SHORT_TOKEN_ERREO.getRespMsg());
        }
        String tokenShortB = mapResultShort.get("value").toString();
        String longUrl = WEIXIN_LONG_TOKEN.concat("dataface/wechatKey?token=") + tokenShortB ;
        logger.info("json_token_long requestUrl:"+ longUrl);
//        String longUrl = String.format(url_template,tokenShort);
//        logger.info("json_token_long requestUrl:"+ longUrl);
        String jsonTokenLong = null;
		try {
			jsonTokenLong = httpClientWraper.mockPostJsonNew(longUrl, null, false);
		} catch (Exception e) {
			e.printStackTrace();
		}
        logger.info("获取jsonTokenShort响应:"+ jsonTokenLong);
        Map<String,Object> mapResultLong = (Map)JSON.parse(jsonTokenLong);
//        if (jsonTokenShort.contains("errcode") && !mapResultLong.get("errcode").toString().equals("0")) {
//            throw new GzhBizRuntimeException(mapResultLong.get("errcode").toString(),mapResultLong.get("errmsg").toString());
//        }
        Object tokenLongA = mapResultLong.get("value");
        if(tokenLongA == null){
        	throw new GzhBizRuntimeException(RespCodeEnum.GET_LONG_TOKEN_ERREO.getRespCode(),
                    RespCodeEnum.GET_LONG_TOKEN_ERREO.getRespMsg());
        }
        String tokenLongB = mapResultLong.get("value").toString();	
        Map<String,Object> mapResult = (Map)JSON.parse(tokenLongB);
        String token = mapResult.get("key").toString();
        tokenMap.put("token", token);
        logger.info("token>>>>>>>>>>>>>>>>>>>>>>>" + token);
        return token;
	}

这个方法就可以获取到token了。
这个是获取了两次,第一次获取短的token,然后第二次获取长的token并使用拼接把短的token也拼接上去。最后才获取到最后的token。获取两次是为了安全。

还有一个提交的工具类 里面有个post提交的方法。我这个入参只能用post访问。

  public String mockPostJsonNew(String url,String parameter,boolean isValid) throws Exception {
		PostMethod postMethod = new PostMethod(url);
		RequestEntity requestEntity;
		if(parameter != null){
			try {
				requestEntity = new StringRequestEntity(parameter,"application/json","UTF-8");
			} catch (UnsupportedEncodingException e) {
				logger.error(e.getMessage());
				throw new Exception(e.getMessage());
			}  
			postMethod.setRequestEntity(requestEntity); 
		}
		return executeMethod(postMethod,isValid);
	}

如果是get提交的话 我也写了个get提交的方法

public  String mockGet(String url) {
        HttpClient httpClient = new HttpClient();
        if(isValid){
            logger.info(">>>>>>>>>>>>>>>开启代理。");
            //设置代理请求
            httpClient.getHostConfiguration().setProxy(proxyAddress,proxyPort);
        } else {
            logger.info(">>>>>>>>>>>>>>>未开启网络代理。");
        }
        HttpMethod getMethod = new GetMethod(url);
        try {
            int statusCode = httpClient.executeMethod(getMethod);
            if (HttpURLConnection.HTTP_OK == statusCode) {
                return execute(getMethod);
            }
        } catch (Exception e) {
            logger.error(e.getMessage(),e);
            throw new GzhBizRuntimeException("-1", e.getMessage(),e);
        }

        return "";
    }
    

你们如果没有设置代理的话,代理这块可以删除掉。

最后…
博主是一枚小白,记录工作上目前对博主而言比较难的问题。
如果错误请私信博主。谢谢,有不懂的也可以找博主哦~

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/129704.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 05-01-部署 WSUS on Windows 2019 Core

    05-01-部署 WSUS on Windows 2019 Core

    2021年7月2日
    84
  • 什么是PXE及PXE启动

    什么是PXE及PXE启动PXE(Pre-bootExecutionEnvironment)是由Intel设计的协议,它可以使计算机通过网络启动。协议分为client和server两端,PXEclient在网卡的ROM中,当计算机引导时,BIOS把PXEclient调入内存执行,并显示出命令菜单,经用户选择后,PXEclient将放置在远端的操作系统通过网络下载到本地运行。  PXE协议的成功运行需要解决

    2022年6月29日
    98
  • 如何设置vimrc 配置文件_居中怎么设置

    如何设置vimrc 配置文件_居中怎么设置#HowToVimrc在炮制你自己的.vimrc配置时,这里只有一个原则.不要把任何你不理解的一行放到你的vimrc中.互联网上有以吨计的入门手册,诸如这篇文章.它们之中包含各种令人惊叹的Hack技巧,这可以记你的Vim更好,但为了让你的环境更好完全从别人那儿照搬那些配置,完全是**最糟糕**的做法.真真切切地花一些时间来学习你

    2022年5月3日
    58
  • C#解析json文件的方法

    C#解析json文件的方法

    2021年8月26日
    54
  • PriorityQueue详解

    PriorityQueue详解作者:王一飞 ,叩丁狼高级讲师。原创文章,转载请注明出处。     概念PriorityQueue一个基于优先级的无界优先级队列。优先级队列的元素按照其自然顺序进行排序,或者根据构造队列时提供的Comparator进行排序,具体取决于所使用的构造方法。该队列不允许使用null元素也不允许插入不可比较的对象(没有实现Comparable接口的对象)。PriorityQueue队…

    2022年4月29日
    41
  • 神经网络学习笔记1——BP神经网络原理到编程实现(matlab,python)[通俗易懂]

    神经网络学习笔记1——BP神经网络原理到编程实现(matlab,python)[通俗易懂]神经网络学习笔记1——BP神经网络原理到编程实现(matlab,python)

    2022年7月20日
    16

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号