长链接制作为短链接
前言
需要说明的是,这里使用的是微博提供的接口,也就是说,这个短链接是微博给我们提供的
在网络上到一个我们工具站
http://dwz.wailian.work/anonymous.php
言归正传
微博开发平台APIhttp://open.weibo.com/wiki/2/short_url/shorten
1、调用接口(主要部分)
public static String LongToShortLink (String longUrl) {
String requestUrl = "http://api.weibo.com/2/short_url/shorten.json?source=2849184197&url_long=urlLongParam";
requestUrl = requestUrl.replace("urlLongParam", longUrl);
String body = HttpHelper.handleGet(requestUrl);
if(body.contains("false")){
log.error(body);
}
return body;
}
2、Http请求类
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.IOUtils;
import org.apache.http.HttpResponse;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
@Slf4j
public class HttpHelper {
public static final String ENCODING_UTF8 = "UTF-8";
public static final int OVERTIME = 2000;
private static RequestConfig defaultRequestConfig(Integer over_time) {
if (over_time == null) {
return RequestConfig.custom().setSocketTimeout(OVERTIME).setConnectTimeout(OVERTIME).setConnectionRequestTimeout(OVERTIME).build();
} else {
return RequestConfig.custom().setSocketTimeout(over_time).setConnectTimeout(over_time).setConnectionRequestTimeout(over_time).build();
}
}
/**
* http 普通get请求
*
* @param uri
* @return
*/
public static String handleGet(String uri) {
CloseableHttpClient httpclient = HttpClients.custom().build();
HttpGet request = null;
HttpResponse response = null;
String result = null ;
try {
request = new HttpGet(uri);
request.setConfig(defaultRequestConfig(null));
response = httpclient.execute(request);
result = IOUtils.toString(response.getEntity().getContent(), ENCODING_UTF8);
} catch (Exception e) {
log.error(e.getMessage(), e);
} finally {
IOUtils.closeQuietly(httpclient);
}
return result;
}
}
3、main方法调用
import com.hlj.linktoshort.data.ShortLinkResult;
import com.hlj.linktoshort.utils.JsonUtils;
import com.hlj.linktoshort.utils.LinkUtils;
import com.hlj.linktoshort.utils.QrCodeUtils;
import lombok.extern.slf4j.Slf4j;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
/**
* 类描述: 长连接转短链接
*
* http://api.weibo.com/2/short_url/shorten.json?source=2849184197&url_long=http://www.cnblogs.com
*/
@Slf4j
public class StartMain {
public static void main(String[] args) {
String longUrl = "" +
"https://blog.csdn.net/u012954706"
;
String sourceName = "origin.jpeg" ;
String sourceFilePath = "/Users/healerjean/Desktop/"+sourceName;
String saveFilePath = "/Users/healerjean/Desktop/A"+sourceName+".png";
String shortLink = LinkUtils.LongToShortLink(longUrl);
ShortLinkResult shortLinkResult = JsonUtils.toObject(shortLink,ShortLinkResult.class );
log.info("\n短链接:"+shortLinkResult.getUrls().get(0).getUrl_short()+"\n长链接:"+shortLinkResult.getUrls().get(0).getUrl_long());
}
4、实体类
package com.hlj.linktoshort.data;
import java.util.List;
/**
* 作者 :HealerJean
* 日期 :2018/11/23 上午11:37.
* 类描述:
*/
public class ShortLinkResult {
private List<UrlsBean> urls;
public List<UrlsBean> getUrls() {
return urls;
}
public void setUrls(List<UrlsBean> urls) {
this.urls = urls;
}
public static class UrlsBean {
/**
* result : true
* url_short : http://t.cn/h5FGy
* url_long : http://www.cnblogs.com
* object_type :
* type : 0
* object_id :
*/
private boolean result;
private String url_short;
private String url_long;
private String object_type;
private int type;
private String object_id;
public boolean isResult() {
return result;
}
public void setResult(boolean result) {
this.result = result;
}
public String getUrl_short() {
return url_short;
}
public void setUrl_short(String url_short) {
this.url_short = url_short;
}
public String getUrl_long() {
return url_long;
}
public void setUrl_long(String url_long) {
this.url_long = url_long;
}
public String getObject_type() {
return object_type;
}
public void setObject_type(String object_type) {
this.object_type = object_type;
}
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
public String getObject_id() {
return object_id;
}
public void setObject_id(String object_id) {
this.object_id = object_id;
}
}
}
感兴趣的,欢迎添加博主微信,
哈,博主很乐意和各路好友交流,如果满意,请打赏博主任意金额,感兴趣的在微信转账的时候,备注您的微信或者其他联系方式。添加博主微信哦。
请下方留言吧。可与博主自由讨论哦
微信 | 微信公众号 | 支付宝 |
---|---|---|