本文共 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/