java 生成短链接

有时候,我们给用户发送一些短信中,涉及到url问题,如果一个url太长,那么很可能就是两条短信的内容。解决这个问题的方法就是缩短url的长度,如何来缩短呢,我想有两种方法来完成。

1. 生成一定长度字符串与url的映射
如:http://xxx/xxx/?code=123abc25
其中123abc25就是一个与url对应的编码,这样在后台接收后,根据映射取出url,再做重定向
操作。

2. 利用短链接来完成
这个在微博、微信中很常用,分享一个地址,不可能很长,就利用了这个原理,从最根本上它
是进行了重定向跳转操作。

下面通过一个例子来加以说明。


public class shortDemo {
public static HttpClient httpclient;
static {
// 构造 HttpClient
httpclient = new DefaultHttpClient();
}

public static String generateShortUrl(String url) {
try {
// 构造发送post请求
HttpPost httpost = new HttpPost("http://dwz.cn/create.php");
List params = new ArrayList();
// 传递请求参数
params.add(new BasicNameValuePair("url", url)); // 用户名称
httpost.setEntity(new UrlEncodedFormEntity(params, "utf-8"));
// 发送请求并且获取执行结果
HttpResponse response = httpclient.execute(httpost);
// 获取结果内容
String jsonStr = EntityUtils
.toString(response.getEntity(), "utf-8");
// 将结果转成json对象
JSONObject object = JSON.parseObject(jsonStr);
// 获取短链接地址url
return object.getString("tinyurl");
} catch (Exception e) {
e.printStackTrace();
return "Error";
}
}

public static void main(String[] args) {
List list = new ArrayList();
list.add("http://pay.xiaojukeji.com/new_hb/EHongbao/gethongbao?id=56187735c4ce5&codes=b642e7801a6abaaf03e51f1489fc26e5&sign=C8B40FFB024CF9A5DCE99A9D6AD4071E");
System.out.println(generateShortUrl(list.get(0)));
}
}

最后的结果是http://dwz.cn/1X9xaw,是不是短多了呢。

你可能感兴趣的:(Java)