标签:String URL 微信 程序 value token jsonObject new append
获取URLLink
@RequestMapping(value = "/getURLLink", method = RequestMethod.GET)
private @ResponseBody Message getURLLink(@RequestParam String path ,@RequestParam String query,@RequestParam Integer type){
try {
query = URLDecoder.decode(query,"UTF-8");
String token = this.getTokenByType(type);
StringBuffer httpsBuffer = new StringBuffer();
httpsBuffer.append("https://api.weixin.qq.com/wxa/generate_urllink?");
httpsBuffer.append("access_token=").append(token);
Map<String,String> value = new HashMap<>();
value.put("path",path);
value.put("query",query);
// value.put("expire_type",1+"");
// value.put("expire_time",1+"");
String result = HttpUtil.post(httpsBuffer.toString(),value);
JSONObject jsonObject = JSONObject.parseObject(result);
if(!Objects.equals(jsonObject.getString("errcode") , "0")){
throw new RuntimeException(jsonObject.getString("errmsg"));
}
String urlLink = jsonObject.getString("url_link");
return MessageUtil.createSuccessMessage(urlLink);
} catch (Exception e) {
e.printStackTrace();
return MessageUtil.createErrorMessage(e.getMessage());
}
}
POST方法
public static <T> String post(String url, T t) throws URISyntaxException {
RestTemplate restTemplate = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
RequestEntity<T> requestEntity = RequestEntity
.post(new URI(url))
.contentType(MediaType.APPLICATION_JSON)
.body(t);
ResponseEntity<String> value = restTemplate.exchange(requestEntity,String.class);
if(value == null){
return "error";
}
String result = value.getBody();
return result;
}
获取token
private String getTokenByType(Integer type) throws IOException {
String key = "TOKEN_"+ type;
String token = (String) redisUtil.get(key);
if(token !=null){
return token;
}
ConstantUtils constantUtils = ConstantUtils.create(type);
StringBuffer httpsBuffer = new StringBuffer();
httpsBuffer.append("https://api.weixin.qq.com/cgi-bin/token?")
.append("appid=").append(constantUtils.appId)
.append("&secret=").append(constantUtils.secret)
.append("&grant_type=").append("client_credential");
String restult = HttpUtil.get(httpsBuffer.toString());
JSONObject jsonObject = JSONObject.parseObject(restult);
if(jsonObject.getString("errcode")!=null){
throw new RuntimeException(jsonObject.getString("errmsg"));
}
token = jsonObject.getString("access_token");
long expires = jsonObject.getLongValue("expires_in");
if(expires>100){
expires -=100;
}
redisUtil.set(key,token,expires);
return token;
}
测试
http://localhost:9090/english-server/wechatCheck/getURLLink?type=5&path=/linkuppages/pages/content/SegmentInfo&query=id%3De1c355af-**********
返回的结果
{"message":"ok","status":0,"page":0,"totalPage":0,"data":"\"https://wxaurl.cn/l39Qu3kzxae\"","realData":null}
标签:String,URL,微信,程序,value,token,jsonObject,new,append 来源: https://blog.csdn.net/weixin_38581615/article/details/117358393
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。