百度长链接转换短链接
2022-03-07 15:15
2632 人阅读
分类:
百度接口文档地址: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");
和博主交个朋友吧