博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
生成短连接
阅读量:4050 次
发布时间:2019-05-25

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

import java.util.ArrayList;
import java.util.List;
import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
 *
 * @author 14072593
 * 短连接生成工具
 */
public class GenerateShortUrlUtil {
    
    /**
     * 日志对象
     */
    private static final Logger LOGGER = LoggerFactory.getLogger(GenerateShortUrlUtil.class);
    
    /**
     * 使用百度提供的短网址API,将传入的长网址转化成短网址
     * @param url 长网址
     * @param proxyIp 公网访问代理ip
     * @param proxyPort 公网访问代理端口port
     * @return java.lang.String
     */
    public static String generateShortUrl(String url, String proxyIp, int proxyPort) {
        try {
//            HttpClient httpclient = new HttpClient()
//            httpclient.getHostConfiguration().setProxy("00.00.00.00", 8080)
//            DefaultHttpClient httpclient = new DefaultHttpClient()
            
            //设置代理IP、端口、协议
            HttpHost proxy = new HttpHost(proxyIp, proxyPort, "http");
            //把代理设置到请求配置
            RequestConfig defaultRequestConfig = RequestConfig.custom().setProxy(proxy).build();
            //实例化CloseableHttpClient对象
            CloseableHttpClient httpclient = HttpClients.custom().setDefaultRequestConfig(defaultRequestConfig).build();
            
            HttpPost httpost = new HttpPost("http://dwz.cn/create.php"); //百度短连接API
            
            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");
            String tinyurl = jsonStr.replace("{\"tinyurl\":\"", "");
            int index = tinyurl.indexOf("\",\"status");
            tinyurl = tinyurl.substring(0,index).replace("\\/", "/");
            LOGGER.info("生成短连接成功:" + tinyurl);
            return tinyurl;
        } catch (Exception e) {
            LOGGER.error("生成短连接失败:url", e);
            return "Error";
        }
    }

转载地址:http://ninci.baihongyu.com/

你可能感兴趣的文章
CCF 分蛋糕
查看>>
解决python2.7中UnicodeEncodeError
查看>>
小谈python 输出
查看>>
Django objects.all()、objects.get()与objects.filter()之间的区别介绍
查看>>
python:如何将excel文件转化成CSV格式
查看>>
机器学习实战之决策树(一)
查看>>
机器学习实战之决策树二
查看>>
[LeetCode By Python]7 Reverse Integer
查看>>
[LeetCode By Python]121. Best Time to Buy and Sell Stock
查看>>
[LeetCode By Python]122. Best Time to Buy and Sell Stock II
查看>>
[LeetCode By Python]125. Valid Palindrome
查看>>
[LeetCode By Python]136. Single Number
查看>>
Android/Linux 内存监视
查看>>
Android2.1消息应用(Messaging)源码学习笔记
查看>>
CocoaPods实践之制作篇
查看>>
[Mac]Mac 操作系统 常见技巧
查看>>
苹果Swift编程语言入门教程【中文版】
查看>>
捕鱼忍者(ninja fishing)之游戏指南+游戏攻略+游戏体验
查看>>
iphone开发之SDK研究(待续)
查看>>
计算机网络复习要点
查看>>