获取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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Linux系统-tcpdump常用抓包命令

    Linux系统-tcpdump常用抓包命令linux,tcpdump

    2022年5月21日
    53
  • vue页面传参、vue两个页面相互传递参数跳转、vue跳转传参

    vue页面传参、vue两个页面相互传递参数跳转、vue跳转传参table vue 表格列表页 点击修改 bianji vue 编辑页面 form 表单 得到 table 里给传过来的值 table vue 要传参的页面 如下 在 methods 写修改的方法 两种方法传参 第一种传参 name 与结合使用 params 第二种传参 path 与 query 结合使用 区别 query 更加类似于我们 ajax 中 get 传参

    2025年6月17日
    0
  • 使用cookie登录

    前言:什么是cookie?Cookie,指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密)。比如说有些网站需要登录后才能访问某个页面,在登录之前,你想抓取某个页面内容是不允许的。那么我们可以利用Urllib库保存我们登录的Cookie,然后再抓取其他页面,这样就达到了我们的目的。一、Urllib库简介Urllib是python内置的H…

    2022年4月7日
    179
  • gcc查看当前的版本并升级[通俗易懂]

    gcc查看当前的版本并升级[通俗易懂]1.gcc查看版本:gcc-vMacBook-Pro:$gcc-vConfiguredwith:–prefix=/Library/Developer/CommandLineTools/usr–with-gxx-include-dir=/usr/include/c++/4.2.1AppleLLVMversion7.0.0(clang-700.1.76)Tar…

    2022年6月26日
    38
  • MySQL 8.0 新特性:引人注目的哈希连接(Hash Join)

    点击上方“全栈程序员社区”,星标公众号 重磅干货,第一时间送达 作者:不剪发的Tony老师 blog.csdn.net/horses/article/details/1026900…

    2021年6月26日
    78
  • java数独解法[通俗易懂]

    java数独解法[通俗易懂]玩了好久的数独,前几天突发奇想写一个解法,看了好多文章和源码,像回溯法和唯一解法,都不太理解其思路,于是就自己动手写了一个,效率还算可以,有优化的空间,但是懒得优化了。整体的解法思路就是列出每个空格的备选数,然后逐一尝试,可谓是最笨的解法了,分享给大家图个乐,还希望大佬看到了可以指点一下里面的不足之处。同样因为懒,就没做成web应用,一个main方法自己跑着玩了就。代码里面包含了1-5级的数独…

    2022年10月22日
    0

发表回复

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

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