.NET对接TSINGSEE青犀视频智能分析平台API的部分功能及技巧总结(内含POST和GET的调用)
时间:2021-08-09
本文章向大家介绍.NET对接TSINGSEE青犀视频智能分析平台API的部分功能及技巧总结(内含POST和GET的调用),主要包括.NET对接TSINGSEE青犀视频智能分析平台API的部分功能及技巧总结(内含POST和GET的调用)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
TSINGSEE青犀视频智能分析平台EasyNVR、EasyCVR等都具备丰富的API接口,API接口中密码需要MD5加密,这一点是为了系统安全考虑,下文中有具体实现,可以参考。本文我们总结下NET对接TSINGSEE青犀视频智能分析平台API用到的几个小功能,TSINGSEE青犀视频智能分析平台中API接口提供的POST和GET的调用下文中也有具体实现,请注意下,我们反复强调接口调用的时候请注意下TOKEN值的传递。
1、Easy系列产品在登录时对密码需要进行32位MD5加密,.NET对应实现如下:
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发送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("发送GET请求出现异常:" + ex.Message);
}
finally
{
if (reader != null)
{
reader.Close();
}
}
return result;
}
3、向指定 URL 发送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("发送GET请求出现异常:" + ex.Message);
}
return result;
}
原文地址:https://www.cnblogs.com/TSINGSEE/p/15119236.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 关于 ThreadLocal 你需要知道的几点
- 关于Guava ForwardingMap
- http post Request header is too large 开发环境和线上版本解决方案
- 像java一样使用js contains 数组包含方法 实践笔记
- 服务治理之重试篇
- 一次排查线上接口偶发异常耗时引起的思考!
- 台阶很高,青蛙跳不跳?
- 从零开始认识堆排序
- Redis SDS 深入一点,看到更多!
- Centos7下Oracle 11g r2 本地/远程 用exp/imp命令快速导入导出数据 实践笔记
- js常用函数大全107个
- xtraReprot 动态绑定数据 数据列动态
- 线上问题分析之java dump文件生成
- python基础知识
- AtCoder Beginner Contest 177 A ~ E