• 调用第三方接口生成短链接(二)


    方法总是多样的,现在介绍另一种生成短链接的方式:

    网址缩短API文档: http://suo.im/。

    接下来提供两种调用方式生成短链接:①TXT格式短网址API接口,②JSON格式短网址API接口。

    Java jar包:httpclient-4.5.jar,httpclient-cache-4.5.jar,httpclient-win-4.5.jar,httpcore-4.4.1.jar,httpmime-4.5.jar,fastjson-1.2.2.jar。

    下载地址:http://download.csdn.net/detail/litter_fisher/9923346。

    实验代码如下:

    package space;
    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.net.URL;
    import java.net.URLConnection;
    import com.alibaba.fastjson.JSON;
    import com.alibaba.fastjson.JSONObject;
    
    public class TestSuo {
    	
    	static String ACTIONURL = "http://suo.im/api.php";
    	
    	public static void main(String[] args) {
    		
    		String longUrl = "https://www.baidu.com";
    		TestSuo ts = new TestSuo();
    		System.out.println(ts.getUrlTxt(longUrl));
    		System.out.println("--------------");
    		System.out.println(ts.getUrlJson(longUrl));
    		
    	}
    	
    	public String getUrlTxt(String url) {
    		String ret = "";
    		try {
    			String longUrlSuo =  java.net.URLEncoder.encode(url,"utf-8");
    			String result = sendGet(ACTIONURL, "url="+longUrlSuo);
    			if(result==null || "".equals(result)){
    				return "";
    			}		
    			System.out.println("--result: --" + result);
    			ret = result;
    		} catch (Exception e) {
    			e.printStackTrace();
    		} 
    		return ret;	
    	}
    	
    	public String getUrlJson(String url) {
    		String ret = "";
    		try {
    			String longUrlSuo =  java.net.URLEncoder.encode(url,"utf-8");
    			String result = sendGet(ACTIONURL, "url="+longUrlSuo+"&format=json");
    			if(result==null || "".equals(result)){
    				return "";
    			}		
    			JSONObject json = JSON.parseObject(result);	
    			System.out.println("--result: --" + json.toJSONString());
    			ret = json.get("url").toString();
    		} catch (Exception e) {
    			e.printStackTrace();
    		} 
    		return ret;	
    	}
    	
         /**
         * 向指定URL发送GET方法的请求 
         * @param url   发送请求的URL
         * @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
         * @return URL  所代表远程资源的响应结果
         */
        public static String sendGet(String url, String param) {
            String result = "";
            BufferedReader in = null;
            try {
                String urlNameString = url + "?" + param;
                URL realUrl = new URL(urlNameString);
                // 打开和URL之间的连接
                URLConnection connection = realUrl.openConnection();
                // 设置通用的请求属性
                connection.setRequestProperty("accept", "*/*");
                connection.setRequestProperty("connection", "Keep-Alive");
                connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
                // 建立实际的连接
                connection.connect();
                // 定义 BufferedReader输入流来读取URL的响应
                in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
                String line;
                while ((line = in.readLine()) != null) {
                    result += line;
                }
            } catch (Exception e) {
                System.out.println("发送GET请求出现异常!" + e);
                e.printStackTrace();
            }
            // 使用finally块来关闭输入流
            finally {
                try {
                    if (in != null) {
                        in.close();
                    }
                } catch (Exception e2) {
                    e2.printStackTrace();
                }
            }
            return result;
        }
    	
    }
    

      

  • 相关阅读:
    ping 网关不同的原因(51cto博客搬迁)
    Linux Shell常用命令总结(51cto 博客搬迁)
    学生管理系统管理系统
    offset属性在各版本浏览器中的不同算法
    常用正则表达式
    select城市3级联动
    html5表单验证消息框
    清除浏览器默认选择效果
    排序之简单的冒泡排序
    简单的桶排序
  • 原文地址:https://www.cnblogs.com/loytime/p/7272627.html
Copyright © 2020-2023  润新知