随笔 - 1506  文章 - 1  评论 - 7  阅读 - 58万

RTSP协议网络摄像头网页无插件直播平台EasyNVR的云端综合管理平台EasyNVS提交基础配置报错原因分析

EasyNVR是基于RTSP协议网络摄像头/NVR的流媒体视频平台,无需安装各个安防设备厂商的视频播放插件,即可接入海康、大华、宇视等网络硬盘录像机、NVR设备。如果需要互联网访问前端设备视频,还可以通过部署EasyNVS视频管理平台在外网,来进行网络之间的穿透与视频交互。

EasyNVS视频管理平台可以在配置页面接入EasyNVR。但是我们在一次配置当中发现提交的时候,报错“APIAuth eq|eq”。

分析问题

此处是在提交EasyNVS基础配置时候提示的错误,于是我们查看浏览器控制台发送的请求。

前端传过来的参数是“false”。下面观看后端的接口。

APIAuth这个参数限制只能传“0”或“1”,而前端传过来的参数是“false”,于是报错了。

解决问题

现在有两种解决方法。第一种修改前端,第二种修改后端。我们先从前端开始排查问题。

1、观看前端代码

 
1
2
3
4
5
6
7
onAPIAuth (data) {
 
 
data=='0'?this.APIAuth='1':this.APIAuth='0'
 
// console.log(this.APIAuth)
},

  

这个是选择按钮的点击事件,在这里会将APIAuth这个参数改为“0”或“1”,那为什么提交还是会报错?

2、继续查看接口。

发现在获取配置接口的时候,后端传给前端的参数是“false”。到这里我们可以明白是后端的错误,所以下面检查后端。

3、查看后端的获取配置的接口。

 
1
2
3
4
5
6
7
8
9
10
11
func (h *APIHandler) GetBaseConfig(c *gin.Context) {
 
sec := utils.Conf().Section("nvs")
 
c.IndentedJSON(http.StatusOK, gin.H{
"Host": sec.Key("host").MustString(utils.LocalIP()),
"Port": sec.Key("port").MustUint(10812),
"DevicePassword": sec.Key("device_password").MustString(""),
"APIAuth": utils.Conf().Section("http").Key("api_auth").MustString("0"),
})
}

  

这里将APIAuth这个参数从配置文件读取,如果读不到就是“0”,查看配置文件,发现没有为http下api_auth这个参数。

4、于是我们可以在ini配置文件给api_auth设置默认值为1。这样传回前端就不会报False,也就不再报错了。

关于EasyNVS

EasyNVR对接EasyNVS可以利用网络实现按需直播,同时屏蔽各种网络环境问题,适用于有线、WIFI、4G、专网,EasyNVS管理平台能获取到EasyNVR的所有能力,并进行互联网化输出,同时进行统一化的管理和接口输出。

 
posted on   EasyNVR  阅读(210)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 提示词工程——AI应用必不可少的技术
· 地球OL攻略 —— 某应届生求职总结
· 字符编码:从基础到乱码解决
· SpringCloud带你走进微服务的世界
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示