您的位置:首页 > 新闻 > 资讯 > 微信小程序-获取手机号:HttpClientErrorException: 412 Precondition Failed: [no body]

微信小程序-获取手机号:HttpClientErrorException: 412 Precondition Failed: [no body]

2024/12/22 17:08:51 来源:https://blog.csdn.net/qq_53066920/article/details/140815018  浏览:    关键词:微信小程序-获取手机号:HttpClientErrorException: 412 Precondition Failed: [no body]

问题:

412 异常就是你的请求参数获取请求头与服务器的不符,缺少请求体!

我的问题:

我这里获取微信手机号的时候突然给我报错142,但是代码用的是原来的代码,换了一个框架就噶了!

排查问题:

1.检查了一下各个方法的版本,版本一致!

2.检查了一下 小程序的appid和secret都是对应上的!

3.又拿原来的对比了一下,原来的框架可以获取,新的就不行!

解决问题:

换了一个请求方式后,发现前端传过来的参数是个JOSN字符串!

然后我又把JOSN字符串封装成一个Map再转化成JOSN字符串去请求,变成了:

{code:{code:巴拉巴拉}}

微信官方请求的方式是:

问题找到,要么叫前端改,要么自己改。

后端获取手机号解决问题版:

        String accessToken = 你的Token;String code= 前端的code;String url = "https://api.weixin.qq.com/wxa/business/getuserphonenumber?access_token=" + accessToken;HttpHeaders headers = new HttpHeaders();RestTemplate restTemplate = new RestTemplate();HttpEntity<Map<String, String>> httpEntity;if (code.contains("code")) {httpEntity = new HttpEntity(code,headers);}else {Map<String, String> params = new HashMap<>();params.put("code", code);httpEntity = new HttpEntity(params,headers);}ResponseEntity<Object> response = restTemplate.postForEntity(url, httpEntity, Object.class, new Object[0]);

前方道路坎坷,同志们还需努力!

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com