package com.shinedata;
import com.google.gson.Gson;
import com.google.gson.annotations.SerializedName;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
/**
* @ClassName BaiduDwz
* @Author yupanpan
* @Date 2019/9/27 13:57
*/
public class BaiduDwz {
final static String CREATE_API = "https://dwz.cn/admin/v2/create";
final static String TOKEN = "TOKEN";//你的TOken
class UrlResponse {
@SerializedName("Code")
private int code;
@SerializedName("ErrMsg")
private String errMsg;
@SerializedName("LongUrl")
private String longUrl;
@SerializedName("ShortUrl")
private String shortUrl;
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getErrMsg() {
return errMsg;
}
public void setErrMsg(String errMsg) {
this.errMsg = errMsg;
}
public String getLongUrl() {
return longUrl;
}
public void setLongUrl(String longUrl) {
this.longUrl = longUrl;
}
public String getShortUrl() {
return shortUrl;
}
public void setShortUrl(String shortUrl) {
this.shortUrl = shortUrl;
}
}
/**
* 创建短网址
*
* @param longUrl
* 长网址:即原网址
* termOfValidity
* 有效期:默认值为long-term
* @return 成功:短网址
* 失败:返回空字符串
*/
public static String createShortUrl(String longUrl, String termOfValidity) {
String params = "{\"Url\":\""+ longUrl + "\",\"TermOfValidity\":\""+ termOfValidity + "\"}";
BufferedReader reader = null;
try {
// 创建连接
URL url = new URL(CREATE_API);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoOutput(true);
connection.setDoInput(true);
connection.setUseCaches(false);
connection.setInstanceFollowRedirects(true);
connection.setRequestMethod("POST"); // 设置请求方式
connection.setRequestProperty("Content-Type", "application/json"); // 设置发送数据的格式
connection.setRequestProperty("Token", TOKEN); // 设置发送数据的格式");
// 发起请求
connection.connect();
OutputStreamWriter out = new OutputStreamWriter(connection.getOutputStream(), "UTF-8"); // utf-8编码
out.append(params);
out.flush();
out.close();
// 读取响应
reader = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));
String line;
String res = "";
while ((line = reader.readLine()) != null) {
res += line;
}
reader.close();
// 抽取生成短网址
UrlResponse urlResponse = new Gson().fromJson(res, UrlResponse.class);
if (urlResponse.getCode() == 0) {
return urlResponse.getShortUrl();
} else {
System.out.println(urlResponse.getErrMsg());
}
return "";
} catch (IOException e) {
// TODO
e.printStackTrace();
}
return "";
}
public static void main(String[] args) {
String res = createShortUrl("https://me.csdn.net/ypp91zr","long-term");
System.out.println(res);
}
}
Get the short link is https://dwz.cn/8mJt5MDs
Baidu have free use of 10,000 points
Generating a short connection interfaces Baidu
Generating a short connection interfaces Sina
More well-known as well as Tencent, Sohu, Sogou, also have short link service
If they have their own domain name and server, or to generate short links, refer to the following two articles summarize some ideas and where noted
https://blog.csdn.net/bntx2jsqfehy7/article/details/80045503