微信小程序开发中获取openid

在做微信小程序开发中获取openid时,有这么一段代码:

  //获取openid
    public static JSONObject  getWxUserOpenid(String code) {
        String appId =“********************”;
        String secret = “*******************”;
        logger.info("appId:"+appId+",secret:"+secret);
        JSONObject res = new JSONObject();
        StringBuilder url = new StringBuilder("https://api.weixin.qq.com/sns/jscode2session?");
        url.append("appid=");//appid设置
        url.append(appId);
        url.append("&secret=");//secret设置
        url.append(secret);
        url.append("&js_code=");//code设置
        url.append(code);
        url.append("&grant_type=authorization_code");
        try {
            HttpClient client =HttpClientBuilder.create().build();//构建一个Client
            HttpGet get = new HttpGet(url.toString());    //构建一个GET请求
            HttpResponse response = client.execute(get);//提交GET请求
            HttpEntity result = response.getEntity();//拿到返回的HttpResponse的"实体"
            String content = EntityUtils.toString(result);   
            res = JSONObject.fromObject(content);//把信息封装为json
            logger.info("content:"+content+"res:"+res);//记录返回的信息
   } catch (Exception e) {
             logger.error("获取openid时遇到异常:"+e);
        }
        return res;
    }

此时HttpClientBuilder类报红线错误,原来是我的相关jar包版本太低了,没有这个类,

后来是我把httpclient的jar包从4.2.5升级到4.5.2后,红线消失了,可以正常引用了,项目启动后,当前端向服务器发送相关

请求时,系统报了这个异常:java.lang.ClassNotFoundException: org.apache.http.config.Lookup,经过一番思考和网上搜

索,我越来越怀疑是项目中httpcore jar包版本太低了,我原来的版本是4.2.4,会不会是版本冲突导致的异常,因为httpclient

已经升级到较高的版本,而httpcore还是之前的版本,而这两个jar 有一定的关联。为了验证这种想法,到网上下想下载对应的4.5.2版本的

httpcore.jar, 进去后,发现httpcore.jar最新的也才到4.4.10版本,不管怎样,总比我之前的那个要新一些,于是把

4.4.10下载好并替换掉原先的4.2.4版本的,重新启动服务器并请求,之前的异常不再报了,不过出来一个新的异

常:javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake,看到异常中带net.ssl和

Remote host ,我怀疑是因为我本地服务器请求微信服务器的原因,本地服务器无法与远程的微信服务器进行通

讯。抱着这样的想法,把代码更新到外网服务器,启动后果然没有再这个异常,还返回了openid,如下:

{“session_key”:“qY0IuJgfA",“openid”:"orTk*”}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值