【技术教程】视频智能分析如何使用C#调用POST接口?

TSINGSEE青犀视频云边端架构视频智能分析平台EasyNVR、EasyCVR等具备视频流拉取、转码、分发的功能,并且我们提供丰富的API接口进行二次开发。

TSINGSEE2.png

最近有一个用户在用C#调用EasyNVR的/api/v1/addlabel 和/api/v1/deletelabel 分组管理API接口一直调用不成功,总是返回401错误,因此咨询我们应该如何正确调用。下面我们来具体实现一下整个调用过程。

1、首先看下接口定义,如下图:

67.png

2、封装一个HTTP POST函数(Post(string url, Dictionary<string, string> dic)),如下:

  /// <summary>
         /// 指定Post地址使用Get 方式获取全部字符串
         /// </summary>
         /// <param name="url">请求后台地址</param>
         /// <returns></returns>
         public static string Post(string url, Dictionary<string, string> dic)
         {
             string result = "";
             HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
             req.Method = "POST";
             req.Headers.Add("Cookie", "token=8uTcJMAMg");
             req.ContentType = "application/x-www-form-urlencoded";
             #region 添加Post 参数
             StringBuilder builder = new StringBuilder();
             int i = 0;
             foreach (var item in dic)
             {
                 if (i > 0)
                     builder.Append("&");
                 builder.AppendFormat("{0}={1}", item.Key, item.Value);
                 i++;
             }
             byte[] data = Encoding.UTF8.GetBytes(builder.ToString());
             req.ContentLength = data.Length;
             using (Stream reqStream = req.GetRequestStream())
             {
                 reqStream.Write(data, 0, data.Length);
                 reqStream.Close();
             }
             #endregion
             HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
             Stream stream = resp.GetResponseStream();
             //获取响应内容
             using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
             {
                 result = reader.ReadToEnd();
             }
             return result;
         }

3、调用接口实现,如下:

//删除
 ///api/v1/deletelabel string Url = "http://" + CLass.XMLOperate.URL + ":" + CLass.XMLOperate.PORT + "/api/v1/deletelabel";
 Dictionary<string, string> parametersdelete = new Dictionary<string, string>();
 //参数列表 parametersdelete.Add("labelids", "[2]");
 string OutString = CLass.HTTP.Post(Url, parametersdelete);
 //添加分组
 ///api/v1/addlabel Url = "http://" + CLass.XMLOperate.URL + ":" + CLass.XMLOperate.PORT + "/api/v1/addlabel";
 Dictionary<string, string> parametersadd = new Dictionary<string, string>();
 //参数列表 parametersadd.Add("labelname", "nihao");
 string mid = "[{\"ChannelId\":\"1\"},{\"ChannelId\":\"2\"}]";
 parametersadd.Add("channels", mid); OutString = CLass.HTTP.Post(Url, parametersadd);

其中URL是通过读配置文件和字符串拼接起来的,注意看下键值对的赋值

A、parametersdelete.Add(“labelids”, “[2]”);
B、parametersadd.Add(“labelname”, “nihao”); string mid = “[{“ChannelId”:“1”},{“ChannelId”:“2”}]”; parametersadd.Add(“channels”, mid);

特别需要注意,键值对中需要有中括号括起来。接口文档可点击此处:http://demo.easynvr.com:10800/apidoc/,如果大家还想了解更多视频相关解决方案,欢迎联系我们,TSINGSEE青犀视频云边端智能分析平台欢迎大家试用。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值