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<NameValuePair> params = new ArrayList<NameValuePair>();
// 传递请求参数
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<String> list = new ArrayList<String>();
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,是不是短多了呢。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值