问题:
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]);
前方道路坎坷,同志们还需努力!