TSINGSEE青犀視頻智能分析平臺EasyNVR、EasyCVR等都具備豐富的API接口,API接口中密碼需要MD5加密,這一點是為了系統(tǒng)安全考慮,下文中有具體實現(xiàn),可以參考。本文我們總結(jié)下NET對接TSINGSEE青犀視頻智能分析平臺API用到的幾個小功能,TSINGSEE青犀視頻智能分析平臺中API接口提供的POST和GET的調(diào)用下文中也有具體實現(xiàn),請注意下,我們反復強調(diào)接口調(diào)用的時候請注意下TOKEN值的傳遞。
1、Easy系列產(chǎn)品在登錄時對密碼需要進行32位MD5加密,.NET對應實現(xiàn)如下:
public string GetMd5(string str) { MD5 md5 = new MD5CryptoServiceProvider(); byte[] bytes = System.Text.Encoding.UTF8.GetBytes(str); bytes = md5.ComputeHash(bytes); md5.Clear(); string ret = ""; for (int i = 0; i < bytes.Length; i++) { ret += Convert.ToString(bytes[i], 16).PadLeft(2, '0'); } return ret.PadLeft(32, '0'); }
2、向指定URL發(fā)送HTTP -GET方法的請求
public string SendGet(string url, string param) { string result = String.Empty; StreamReader reader = null; try { string urlNameString = url + "?" + param; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(urlNameString); request.Method = "GET"; request.ContentType = "text/html;charset=UTF-8"; request.Accept = "*/*"; request.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"; //頭里面要帶入token request.Headers.Add("Cookie", "token=acMyRwXZg"); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); Stream responseStream = response.GetResponseStream(); reader = new StreamReader(responseStream, Encoding.GetEncoding("utf-8")); result = reader.ReadToEnd(); reader.Close(); responseStream.Close(); response.Close(); reader = null; responseStream = null; response = null; } catch (Exception ex) { Console.WriteLine("發(fā)送GET請求出現(xiàn)異常:" + ex.Message); } finally { if (reader != null) { reader.Close(); } } return result; }
3、向指定 URL 發(fā)送HTTP-POST方法的請求
public string SendPost(string url, string jsonData, string encoding) { string result = String.Empty; try { CookieContainer cookie = new CookieContainer(); HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.Method = "POST"; request.Headers.Add("x-requested-with", "XMLHttpRequest"); request.ServicePoint.Expect100Continue = false; request.ContentType = "application/x-www-form-urlencoded"; request.Accept = "*/*"; request.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"; request.ContentLength = Encoding.UTF8.GetByteCount(jsonData); request.CookieContainer = cookie; using (StreamWriter writer = new StreamWriter(request.GetRequestStream(), Encoding.GetEncoding(encoding))) { writer.Write(jsonData); } HttpWebResponse response = (HttpWebResponse)request.GetResponse(); response.Cookies = cookie.GetCookies(response.ResponseUri); using (Stream responseStream = response.GetResponseStream()) { using (StreamReader reader = new StreamReader(responseStream, Encoding.GetEncoding(encoding))) { result = reader.ReadToEnd(); reader.Close(); } responseStream.Close(); } response.Close(); response = null; request = null; } catch (Exception ex) { Console.WriteLine("發(fā)送GET請求出現(xiàn)異常:" + ex.Message); } return result; }
?
本文摘自 :https://blog.51cto.com/t