博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
调用第三方接口生成短链接(三)
阅读量:4315 次
发布时间:2019-06-06

本文共 3377 字,大约阅读时间需要 11 分钟。

新浪微博短链接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.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.URL;import java.net.URLConnection;import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONArray;import com.alibaba.fastjson.JSONObject;public class TestWeibo {	static String actionUrl = "http://api.t.sina.com.cn/short_url/shorten.json";	static String APPKEY = "2815391962,31641035,3271760578,3925598208";	public static void main(String[] args) {		String longUrl = "https://www.baidu.com";		TestWeibo tw = new TestWeibo();		System.out.println(tw.sinaShortUrl(longUrl));	}	public String sinaShortUrl(String longUrl){		longUrl = java.net.URLEncoder.encode(longUrl);		String appkey = APPKEY;		String[] sourceArray = appkey.split(",");		for(String key:sourceArray){			String shortUrl = sinaShortUrl(key,longUrl);			if(shortUrl != null){				return shortUrl;			}		}		return null;	}		public String sinaShortUrl(String source, String longUrl){		String result = sendPost(actionUrl, "url_long="+longUrl+"&source="+source);		if(result==null || "".equals(result)){			return "";		}		JSONArray jsonArr = JSON.parseArray(result);		JSONObject json = JSON.parseObject(jsonArr.get(0).toString());		String ret = json.get("url_short").toString();	    return ret;	}			/**     * 向指定 URL 发送POST方法的请求     * @param url 发送请求的 URL     * @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。     * @return 所代表远程资源的响应结果     */    public static String sendPost(String url, String param) {        PrintWriter out = null;        BufferedReader in = null;        String result = "";        try {            URL realUrl = new URL(url);            // 打开和URL之间的连接            URLConnection conn = realUrl.openConnection();            // 设置通用的请求属性            conn.setRequestProperty("accept", "*/*");            conn.setRequestProperty("connection", "Keep-Alive");            conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");            // 发送POST请求必须设置如下两行            conn.setDoOutput(true);            conn.setDoInput(true);            // 获取URLConnection对象对应的输出流            out = new PrintWriter(conn.getOutputStream());            // 发送请求参数            out.print(param);            // flush输出流的缓冲            out.flush();            // 定义BufferedReader输入流来读取URL的响应            in = new BufferedReader(new InputStreamReader(conn.getInputStream()));            String line;            while ((line = in.readLine()) != null) {                result += line;            }        } catch (Exception e) {            System.out.println("发送 POST 请求出现异常!"+e);            e.printStackTrace();        }        //使用finally块来关闭输出流、输入流        finally{            try{                if(out!=null){                    out.close();                }                if(in!=null){                    in.close();                }            }            catch(IOException ex){                ex.printStackTrace();            }        }        return result;    }    	}

 

 

  附注:

  appkey来源及参考链接:

  2815391962 使用新浪API生成短连接(),

  31641035 新浪短链接API接口示例(),

  3271760578  新浪短网址API接口()。

 

 

转载于:https://www.cnblogs.com/loytime/p/7278320.html

你可能感兴趣的文章
jquery--this
查看>>
MySQL 5.1参考手册
查看>>
TensorFlow安装流程(GPU加速)
查看>>
OpenStack的容器服务体验
查看>>
BZOJ 1066 蜥蜴(网络流)
查看>>
提高批量插入数据的方法
查看>>
Linux重启Mysql命令
查看>>
前端模块化:RequireJS(转)
查看>>
应用程序缓存的应用(摘抄)
查看>>
jQuery基础知识,很赞的!!!
查看>>
[Codevs] 线段树练习5
查看>>
Amazon
查看>>
component-based scene model
查看>>
Echart输出图形
查看>>
hMailServer搭建简单邮件系统
查看>>
从零开始学习jQuery
查看>>
Spring+SpringMVC+MyBatis深入学习及搭建(四)——MyBatis输入映射与输出映射
查看>>
opacity半透明兼容ie8。。。。ie8半透明
查看>>
CDOJ_24 八球胜负
查看>>
Alpha 冲刺 (7/10)
查看>>