c# 调用微吼直播API

2021-07-11 02:06

阅读:391

标签:sum   returns   sts   webex   string   password   大写   prot   length   

/// 
/// 调用微吼直播API
/// 
/// 
/// 
/// 接口地址
/// Json格式的参数(公共参数+接口参数)
/// 
public string GetLiveList(string appKey,string secrectKey,string url,string paramJson)
{
    //unix时间戳
    DateTime dt = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
    int time = (int)(DateTime.Now.AddHours(-8) - dt).TotalSeconds;
    string Timestamp = time.ToString();
    //对参数KEY进行升序排序
    paramJson = StortJson(paramJson);
    //把Json字符串转换成Dictionary对象
    var objJson = JsonConvert.DeserializeObjectstring, object>>(paramJson);
    //签名字符串
    string sign = secrectKey;
    foreach (var temp in objJson)
    {
        sign += temp.Key + temp.Value;
    }
    sign += secrectKey;
    //对签名字符串进行MD5加密
    var signMD5 = FormsAuthentication.HashPasswordForStoringInConfigFile(sign, "MD5");
    //把MD5密文转换成全小写(加密出来的MD5是大写,调用微吼API接口需要小写)
    signMD5 = signMD5.ToLower();
    //把签名放进Dictionary对象 
    objJson.Add("sign", signMD5);
    //请求参数
    string completeUrl = string.Empty;
    foreach (var temp in objJson)
    {
        completeUrl += temp.Key + "=" + temp.Value + "&";
    }
    completeUrl = completeUrl.Substring(0, completeUrl.Length - 1);
    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
    request.Method = "POST";
    request.ContentType = "application/x-www-form-urlencoded";
    request.ProtocolVersion = HttpVersion.Version10;
    byte[] data = Encoding.UTF8.GetBytes(completeUrl);
    request.ContentLength = data.Length;
    Stream newStream = request.GetRequestStream();
    newStream.Write(data, 0, data.Length);
    newStream.Close();
    HttpWebResponse response = null;
    int httpStatus = 200;
    string content;
    try
    {
        response = (HttpWebResponse)request.GetResponse();
        httpStatus = (int)response.StatusCode;
        StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
        content = reader.ReadToEnd();
    }
    catch (WebException e)
    {
        response = (HttpWebResponse)e.Response;
        httpStatus = (int)response.StatusCode;
        using (Stream errData = response.GetResponseStream())
        {
            using (StreamReader reader = new StreamReader(errData))
            {
                content = reader.ReadToEnd();
            }
        }
    }
    return content;
}
/// 
/// 对json字符串进行排序
/// 
/// 
/// 
public static string StortJson(string json)
{
    var dic = JsonConvert.DeserializeObjectstring, object>>(json);
    SortedDictionarystring, object> keyValues = new SortedDictionarystring, object>(dic);
    keyValues.OrderBy(m => m.Value);//升序
    //keyValues.OrderByDescending(m => m.Key);//降序
    return JsonConvert.SerializeObject(keyValues);
}

 

c# 调用微吼直播API

标签:sum   returns   sts   webex   string   password   大写   prot   length   

原文地址:https://www.cnblogs.com/cc-net/p/9661379.html

上一篇:Pointer Lock API

下一篇:c#单例模式


评论


亲,登录后才可以留言!