基于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");//得到的短链


 
public 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 + "
");
                     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;
             }
获取参数  结果的  
/**
	 * 获取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;
	}
 

 pursol 原创




原文地址:https://www.cnblogs.com/pursol/p/7212316.html