c# 调用微吼直播API
标签: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
评论