URL 长链地址转短链 URL地址

一.场景:

在大部分情况下我们使用URl可以访问自己的或者别人的地址,但是有些时候这个URL实在是太长,比如你想在微博或者贴吧加个广告链接,但由于链接太长会导致不可访问。这个时候就需要你使用短链URL。

二.短链的原理:

详细的原理还请百度专业的介绍。假如你使用的是新浪的短链生成接口生成短链,其可以理解为你把自己的原始链接告诉新浪的服务器,它给你返回一个短链地址。当你请求这个地址的时候,他会给你定向到原始的URL地址上访问对应的资源。

三.代码实现
1.选择你要生成短链的服务商,比如我用的是新浪。那么就需要在新浪注册自己的用户信息,若是公司的最好填写完全的公司信息,最终获取AppKey。

2.参考文档地址: http://open.weibo.com/wiki/Short_url/shorten ,也可以登录自己注册的账户搜索Short_url,找到自己 适用得到接口文档。

3.代码如下:

httpArg:外部可访问需要转短链的原始url。
AppKey: 自己申请的注册用户的AppKey。

    private static  String APIURL="http://api.t.sina.com.cn/short_url/shorten.json?source="自己的AppKey"&url_long=";

 public static String urltoshort(String httpArg) {
        String httpUrl=APIURL;
        BufferedReader reader = null;
        String result = null;
        StringBuffer sbf = new StringBuffer();
        String url_short="";
        try {
            httpUrl = httpUrl + URLEncoder.encode(httpArg,"UTF-8");
            URL url = new URL(httpUrl);
            System.out.println("url:"+httpUrl);
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
            connection.setRequestMethod("GET");

            connection.connect();
            InputStream is = connection.getInputStream();
            reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
            String strRead = null;
            while ((strRead = reader.readLine()) != null) {
                sbf.append(strRead);
                sbf.append("\r\n");
            }
            reader.close();
            JSONArray js =new JSONArray(sbf.toString());
            JSONObject jb=(JSONObject)js.get(0);
             url_short =jb.get("url_short").toString();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return url_short;
    }

如有问题还请指正,共同探讨。

猜你喜欢

转载自blog.csdn.net/qq_28014495/article/details/78864233