博主喝口茶,一毛也是爱

收缩

百度长链接转换短链接

2049 人阅读
分类:

百度接口文档地址: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");



和博主交个朋友吧
    发布篇幅
    • 文章总数:0
    • 原创:0
    • 转载:0
    • 译文:0
    文章分类
      文章存档
      阅读排行