百度长链接转换短链接
2022-03-07 15:15
4749 人阅读
百度接口文档地址:https://dwz.cn/console/apidoc
很多时候我们需要将长链接转换成短链接放便我们推广
这里使用百度接口将长链接转换成短链接
添加类 BaiduShortUrlHelper.cs
/// <summary>
/// 百度短链生成 https://dwz.cn/console/apidoc 文档地址
/// </summary>
public class BaiduShortUrlHelper
{
private string TOKEN = "自己申请的token";
/// <summary>
///
/// </summary>
public BaiduShortUrlHelper() { }
/// <summary>
/// 使用独立的token
/// </summary>
/// <param name="token"></param>
public BaiduShortUrlHelper(string token)
{
this.TOKEN = token;
}
/// <summary>
/// 短网址生成接口
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
public CreateShortUrlResponse Create(List<CreateShortUrlRequest> request)
{
try
{
string url = "https://dwz.cn/api/v3/short-urls";
string bodys = JsonConvert.SerializeObject(request);
string response = this.HttpRequest(url, bodys);
CreateShortUrlResponse createResponse = JsonConvert.DeserializeObject<CreateShortUrlResponse>(response);
return createResponse;
}
catch (Exception ex)
{
return new CreateShortUrlResponse() { Code = -6, ErrMsg = ex.Message };
}
}
/// <summary>
/// 短网址还原接口
/// </summary>
/// <param name="shortUrl">shortUrl</param>
/// <returns></returns>
public CreateShortUrlInfo Query(string shortUrlCode)
{
try
{
string url = $"https://dwz.cn/api/v3/short-urls/{shortUrlCode}";
//String bodys = "{\"shortUrl\":\"" + shortUrl + "\"}";
string response = this.HttpRequest(url, "", "Get");
CreateShortUrlInfo createResponse = JsonConvert.DeserializeObject<CreateShortUrlInfo>(response);
return createResponse;
}
catch (Exception ex)
{
return new CreateShortUrlInfo() { Code = -6, ErrMsg = ex.Message };
}
}
private string HttpRequest(string requestUrl, string postBody, string Method = "Post")
{
String bodys = postBody;
String url = requestUrl;
HttpWebRequest httpRequest = null;
HttpWebResponse httpResponse = null;
if (url.Contains("https://"))
{
ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);
httpRequest = (HttpWebRequest)WebRequest.CreateDefault(new Uri(url));
}
else
{
httpRequest = (HttpWebRequest)WebRequest.Create(url);
}
httpRequest.Method = Method;
httpRequest.Headers.Add("Dwz-Token", this.TOKEN);
//根据API的要求,定义相对应的Content-Type
httpRequest.ContentType = "application/json; charset=UTF-8";
if (0 < bodys.Length)
{
byte[] data = Encoding.UTF8.GetBytes(bodys);
using (Stream stream = httpRequest.GetRequestStream())
{
stream.Write(data, 0, data.Length);
}
}
try
{
httpResponse = (HttpWebResponse)httpRequest.GetResponse();
}
catch (WebException ex)
{
httpResponse = (HttpWebResponse)ex.Response;
}
Stream st = httpResponse.GetResponseStream();
StreamReader reader = new StreamReader(st, Encoding.GetEncoding("utf-8"));
return reader.ReadToEnd();
}
private static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)
{
return true;
}
}
/// <summary>
/// https://dwz.cn/console/apidoc 文档地址
/// </summary>
public class CreateShortUrlResponse
{
/// <summary>
/// 0:正常返回短网址
/// -1:短网址生成失败
/// -2:长网址不合法
/// -3:长网址存在安全隐患
/// -4:长网址插入数据库失败
/// -5:长网址在黑名单中,不允许注册
/// -6:CoodooStore.Dwz SDK报错
/// </summary>
public int Code { get; set; }
public List<CreateShortUrlInfo> ShortUrls { get; set; }
/// <summary>
/// 错误信息
/// </summary>
public string ErrMsg { get; set; }
}
public class CreateShortUrlInfo
{
/// <summary>
/// 短网址
/// </summary>
public string ShortUrl { get; set; }
/// <summary>
/// 长网址
/// </summary>
public string LongUrl { get; set; }
public int Code { get; set; }
/// <summary>
/// 错误信息
/// </summary>
public string ErrMsg { get; set; }
}
public class CreateShortUrlRequest
{
/// <summary>
/// 长网址
/// </summary>
public string LongUrl { get; set; }
/// <summary>
/// 短网址有效期,目前支持:
/// "long-term":长期
/// "1-year":1年
/// </summary>
public string TermOfValidity { get; set; }
}调用
1.长链转换短链
var shortUrlHelper = new BaiduShortUrlHelper();
var request = new List<CreateShortUrlRequest>();
//批量转换
request.Add(new CreateShortUrlRequest()
{
LongUrl = "http://www.baidu.com",
TermOfValidity = "1-year"
});
request.Add(new CreateShortUrlRequest()
{
LongUrl = "https://www.cnblogs.com/Jimmy-pan/p/5784611.html",
TermOfValidity = "1-year"
});
var result = shortUrlHelper.Create(request);2. 短链还原长链
var shortUrlHelper = new BaiduShortUrlHelper();
var result = shortUrlHelper.Query("nMno98G1"); 和博主交个朋友吧