package com.wanhua.weixin.util;
import java.util.HashMap;
import java.util.Map;
import org.json.JSONObject;
import play.cache.Cache;
import play.i18n.Messages;
import com.alibaba.fastjson.JSON;
import com.wanhua.weixin.model.AccessToken;
/**
* 请求地址url的工具类
*
* @author w_xfpenga 2015-1-5
*
*/
public class UrlUtil {
/**
* 将一条长链接转成短链接
*
* @param longUrl
* 长链接
* @return 返回短链接
*/
public static String longToShortUrl(String longUrl) {
// 设置调试模式标志
boolean flag = true;
System.out.println("--UrlUtil----longToShortUrl---flag---" + flag);
// 若是调试模式,则返回原长链接
if (flag) {
return longUrl;
}
// 不是调试模式则返回长链接转成短链接之后的链接
// 获取到的凭证
String access_token = AccessToken.getAccessToken();
// 请求地址
String requestUrl = WXConst.LONG_TO_SHORT_URL + access_token;
// 请求参数
Map<String, String> map = new HashMap<String, String>();
map.put("action", "long2short");
map.put("long_url", longUrl);
// 请求输出参数
String outputStr = JSON.toJSONString(map);
String shortUrl = null;
try {
// 请求返回的结果
String result = WXHttpUtil.MsgHttpsRequest(requestUrl, "POST", outputStr);
// 将返回结果转换成json格式数据
JSONObject resultObj = new JSONObject(result);
// 返回的结果的状态码
int code = resultObj.getInt("errcode");
if (code == 0) {
// 返回的短链接url
shortUrl = resultObj.getString("short_url");
// 请求成功返回提示信息
System.out.println(Messages.get("long_to_short_url_success") + result);
} else {
// 请求失败的返回提示信息
System.out.println(Messages.get("long_to_short_url_fail") + result);
}
} catch (Exception e) {
e.printStackTrace();
}
return shortUrl;
}
}