浅谈Java代码的 微信长链转短链接口使用 post 请求封装Json(实例)

 更新时间:2017年07月21日 09:01:16   投稿:jingxian  
下面小编就为大家带来一篇浅谈Java代码的 微信长链转短链接口使用 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;  }

以上这篇浅谈Java代码的 微信长链转短链接口使用 post 请求封装Json(实例)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java反射机制的讲解

    Java反射机制的讲解

    今天小编就为大家分享一篇关于Java反射机制的讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-04-04
  • SpringMVC实现账号只能在一处登陆

    SpringMVC实现账号只能在一处登陆

    这篇文章主要为大家详细介绍了SpringMVC如何实现账号只能在一处登陆,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03
  • mybatis 运行时加载自定义mapper文件方式

    mybatis 运行时加载自定义mapper文件方式

    这篇文章主要介绍了mybatis 运行时加载自定义mapper文件方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • spring eurake中使用IP注册及问题小结

    spring eurake中使用IP注册及问题小结

    在开发spring cloud的时候遇到一个很奇葩的问题,就是服务向spring eureka中注册实例的时候使用的是机器名,然后出现localhost、xxx.xx等这样的内容,这篇文章主要介绍了spring eurake中使用IP注册,需要的朋友可以参考下
    2023-07-07
  • SpringBoot+Redis使用AOP防止重复提交的实现

    SpringBoot+Redis使用AOP防止重复提交的实现

    本文主要介绍了SpringBoot+Redis使用AOP防止重复提交的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • 一篇文章彻底理解SpringIOC、DI

    一篇文章彻底理解SpringIOC、DI

    这篇文章主要给大家介绍了关于对SpringIOC、DI的理解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • Spring MVC中@Controller和@RequestMapping注解使用

    Spring MVC中@Controller和@RequestMapping注解使用

    这篇文章主要介绍了Spring MVC中@Controller和@RequestMapping注解使用,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-02-02
  • 从Myeclipse 导入到eclipse中无法识别为 web项目 问题的解决步骤

    从Myeclipse 导入到eclipse中无法识别为 web项目 问题的解决步骤

    这篇文章主要介绍了从Myeclipse 导入到eclipse中无法识别为 web项目 问题的解决步骤,需要的朋友可以参考下
    2018-05-05
  • Springboot实现定时任务的4种方式举例详解

    Springboot实现定时任务的4种方式举例详解

    在我们开发项目过程中经常需要定时任务来帮助我们来做一些内容,下面这篇文章主要给大家介绍了关于Springboot实现定时任务的4种方式,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-01-01
  • Spring Boot开启的2种方式详解

    Spring Boot开启的2种方式详解

    这篇文章主要介绍了Spring Boot开启的2种方式详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-05-05

最新评论