浅谈Java代码的 微信长链转短链接口使用 post 请求封装Json(实例)
作者:jingxian 发布时间:2023-07-27 19:36:09
标签:微信,长链转短链,post,请求,封装Json
废话不多说,直接上代码
String longUrl = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" + MpUtil.APPID + "&redirect_uri=" + MpUtil.HOMEPAGE + "/nweixinLoginPc.fo%3Frandomcode=" + randomcode + "&response_type=code&scope=snsapi_userinfo&state=account#wechat_redirect";//什么不重要 ,自己的长链
String accessToken = MpUtil.getAccessToken(MpUtil.APPID, MpUtil.APPSECRET);
String shortUrl = null;//短连接地址,生成二维码用,识别快
String httpUrl = "https://api.weixin.qq.com/cgi-bin/shorturl?access_token="+accessToken; //此处访问微信短链方法
/**
* 调用举例
curl -d "{\"action\":\"long2short\",
\"long_url\":\"http://wap.koudaitong.com/v2/showcase/goods?alias=128wi9shh&spm=h56083&redirect_count=1\"}"
"https://api.weixin.qq.com/cgi-bin/shorturl?access_token=ACCESS_TOKEN"
*/
JSONObject jsonObject = new JSONObject();
jsonObject.put("action", "long2short");
jsonObject.put("long_url", longUrl);
String transJson = jsonObject.toString()+httpUrl;
RequestEntity se = new StringRequestEntity(transJson, "application/json", "UTF-8");
//微信返回的字符串
//成功 {"errcode":0,"errmsg":"ok","short_url":"http:\/\/w.url.cn\/s\/AvCo6Ih"}
//失败 {"errcode":40013,"errmsg":"invalid appid"}
String resultsString = post(jsonObject,httpUrl); //封装的post方法
String shortUrl = MpUtil.getJsonValue(resultsString, "short_url");//得到的短链
?12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849public static String post(JSONObject json,String URL) { HttpClient client = new DefaultHttpClient(); HttpPost post = new HttpPost(URL); post.setHeader("Content-Type", "application/json"); post.addHeader("Authorization", "Basic YWRtaW46"); String result = ""; try { StringEntity s = new StringEntity(json.toString(), "utf-8"); s.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE, "application/json")); post.setEntity(s); // 发送请求 HttpResponse httpResponse = client.execute(post); // 获取响应输入流 InputStream inStream = httpResponse.getEntity().getContent(); BufferedReader reader = new BufferedReader(new InputStreamReader( inStream, "utf-8")); StringBuilder strber = new StringBuilder(); String line = null; while ((line = reader.readLine()) != null) strber.append(line + "\n"); inStream.close(); result = strber.toString(); if (httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { return result; } else { result=""; } } catch (Exception e) { System.out.println("请求异常"); throw new RuntimeException(e); } return result; }
获取参数 结果的
?12345678910111213141516/** * 获取json中的值 * @param json * @param key * @return */ public static String getJsonValue(String json, String key) { String value = ""; try { JSONObject jsonObj = new JSONObject(json); value = jsonObj.getString(key); } catch (Exception e) { value = ""; } return value; }


猜你喜欢
- 当使用struts2的validation.xml进行验证时,需要注意如下几个方面:I.首先应该注意validation.xml的名字,一定
- 本文实例为大家分享了java实现人机猜拳游戏的具体代码,供大家参考,具体内容如下完成人机猜拳互动游戏的开发,用户通过控制台输入实现出拳,电脑
- 本文实例讲述了c#图像截取的实现方法。分享给大家供大家参考。具体如下:图像截取的相关代码如下: public Form1()&nb
- 前情提要:本demo是基于springboot+mybatis-plus实现加密,加密为主,全局异常处理,日志处理为辅,而登录密码加密是每个
- 在使用手机时,蓝牙通信给我们带来很多方便。那么在Android手机中怎样进行蓝牙开发呢?本文以实例的方式讲解Android蓝牙开发的知识。&
- (一)什么是微服务网关后端写完所有的微服务之后,最终是要交给前端去调用。我们都知道每个微服务都有各自的端口号,如果前端直接通过IP加端口的方
- SpringBoot的具体介绍可以参看其他网上介绍,这里就不多说了,就这几天的学习,个人理解,简而言之: (1)它是Spring的
- 实现Java编程中倒计时的方法有许多,下面我们通过三个
- 二进制数据一般输入的格式是0x45, 0x3a, 0xc3, 这种数据格式看起来是16进制的字符串,但是实际上在存储的时候每个都对应一个字节
- 本文实例讲述了C#使用HtmlAgilityPack抓取糗事百科内容的方法。分享给大家供大家参考。具体实现方法如下:Console.Writ
- 执行完post请求后,通常来讲一个最佳实践就是执行重定向。重定向将丢弃原始请求数据,原始请求中的模型数据和请求都会消亡。可以有效避免用户浏览
- 综述在Android系统中,出于对性能优化的考虑,对于Android的UI操作并不是线程安全的。也就是说若是有多个线程来操作UI组件,就会有
- 在Android中偶尔会用到开关,Switch就是一个简单易使用的不错的控件。首先,在布局中添加上Switch控件:<Switch &
- mybatis 查询返回Map<String,Object> 类型,平时没太注意怎么用,今天又遇到了总结记录一下,方便以后处理此
- 在Android中要让一个程序的界面始终保持一个方向,不随手机方向转动而变化的办法: 只要在AndroidManifest.xml里面配置一
- 摘要 2021年了,还有不支持弹幕的视频网站吗,现在各种弹
- API参数:/**fileName: 临时文件的名字, 生成后的文件名字将会是【fileName + 随机数】suffix: 文件后缀,例如
- 前言该设计是一款轻量级的便签工具,使用Android Studio开发,风格简练,可实现便签的添加、删除、修改、查看功能。为保证一定的安全性
- 汇总:1. 冒泡排序每轮循环确定最值;public void bubbleSort(int[] nums){ in
- 首先不得不提到access_token的分类,一是普通access_token,二是网页授权access_token。其中前者是用于调用微信