> 技术文档 > 海康HTTP监听报警事件数据_海康报警 xml 格式

海康HTTP监听报警事件数据_海康报警 xml 格式


http监听接收报警事件数据

海康获取设备报警事件数据两种方式:
1、sdk 布防监听报警事件数据,服务端布防,需要设备IP 端口 账号密码。(前面文章有示例)
2、http监听接收报警事件数据,设备直接推送,不需要账号密码,通过IP和端口。

http监听接收报警事件数据,服务端可以使用netty通过端口来监听获取事件数据。

WEB 端配置远程主机

登录Web管理后台:
 设置电脑IP 地址和设备IP 地址在同一网段(例如192.168.1.100)。
 在浏览器地址栏输入设备默认IP 地址,例如http://192.168.1.64,回车。
 输入用户名和密码。
 单击确定。
配置远程主机:
不同版本的设备配置方式不同,交通设备是通过配置ANPR参数进行设置,过程如下:
 单击配置—设备配置—系统设置—网口参数
 根据实际情况设置ANPR IP和端口
 设置完成后点击保存
门禁设备是通过配置HTTP监听参数,过程如下:
 单击配置—网络—高级配置—HTTP监听
 根据实际情况设置IP、端口、URL、协议类型(http或者https),
 设置完成后点击保存

设备一
海康HTTP监听报警事件数据_海康报警 xml 格式
设备二
海康HTTP监听报警事件数据_海康报警 xml 格式
专业设备web 界面是有 ISAPI等多种协议配置。

ISAPI 协议命令配置远程主机

如果设备支持HTTP监听,Web后台没有选项进行配置,那就需要通过协议命令进行配置。配置工具可以选用Postman或者海康官网设备网络SDK开发包中的ClientDemo 工具调用透传接口进行配置。
海康HTTP监听报警事件数据_海康报警 xml 格式

说明:实际配置过程中,先调用GET接口获取远程主机配置参数的报文,然后修改其中节点参数,将修改后的报文作为输入,调用PUT操作命令,修改远程主机的参数,实现远程主机的参数配置。
Postman 测试:
前提条件:电脑与设备接入同一网段的局域网内; Postman 测试方式同样也是先调用GET操作,获取输出报文,修改后然后调
用PUT操作进行配置。Postman操作说明如下图所示:
 操作类型选择:GET;
 组装URL:http://设备IP地址:80/ISAPI命令,例如:http://10.17.35.42:8
0/ISAPI/Event/notification/httpHosts,如果设备是使用 https,端口为 443;
 认证方式:ISAPI协议命令认证方式为摘要认证,Postman集成了这种认证方式,在认证方式的选项中选择:Digest Auth,输入设备的用户名和密码;
 GET操作命令是没有输入的,所以输入中选择为空;
 设置完成后,点击SEND,发送请求到设备中,设备接收到请求后,返回响应,
 修改GET操作获取到的配置报文中的IP、端口、URL等节点参数,然后调用PUT操作下发此配置参数到设备中,返回200 OK代表成功。
认证方式为:Digest Auth,可以参考
海康ISAPI对接门禁设备 添加用户信息和下发人脸
如下图代码认证认证方式:
海康HTTP监听报警事件数据_海康报警 xml 格式

服务器监听接收事件

服务端对指定的端口开启监听,成功开启监听后,可以通过系统命令查看端口监听是否成功,触发设备上对应的事件后,设备会通过POST命令往指定的远程主机端口上推送事件报文。交互的过程可以通过在平台端抓包分析。示例抓包
海康HTTP监听报警事件数据_海康报警 xml 格式
接收到的报文解析都是具有标准的http协议,解析报警报文需要自行实现,对应事件的JSON或者XML报文说明可以联系我司对接技术同事获取。如果配置正常,设备正常触发报警,平台未收到上传的报警事件,首先通过抓包确定设备是否上传到指定端口,如果抓包中有设备上传事件,平台侧没有接收到报文,重点排查一下平台接收解析报文代码、端口监听是否被占用和防火墙是否阻挡。监听机制设备会推送历史事件,刚开启监听后,设备中会将存储的历史事件先上。

官方demo

可参考官方demo进行改造
有数据解析和图片解析保存
海康HTTP监听报警事件数据_海康报警 xml 格式

海康HTTP监听报警事件数据_海康报警 xml 格式海康HTTP监听报警事件数据_海康报警 xml 格式

配置远程主机参数报文

配置远程主机参数报文: { \"requestURL\": \"test\", /*ro, opt, string, 请求URL, range:[,]*/ \"statusCode\": 1, /*ro, req, int, 状态码, range:[,], step:, unit:, unitType:*/ \"statusString\": \"test\", /*ro, req, string, 状态描述, range:[,]*/ \"subStatusCode\": \"test\", /*ro, req, string, 子状态码, range:[,]*/ \"errorCode\": 1, /*ro, opt, int, 错误码, range:[,], step:, unit:, unitType:, desc:当statusCode不为1时,错误码,与subStatusCode对应*/ \"errorMsg\": \"ok\", /*ro, opt, string, 错误详细信息, range:[,], desc:当statusCode不为1时,错误详细信息,能具体到某一个参数的错*/ \"HttpHostNotification\": [ /*ro, req, array, 报警主机信息列表, subType:object, range:[,]*/ { \"id\": \"1\", /*ro, req, string, 序号, range:[,], desc:最大长度为128*/ \"url\": \"http://10.7.35.19:9000/alarm\", /*ro, opt, string, URL, range:[,]*/ \"protocolType\": \"HTTP\", /*ro, req, enum, 协议类型, subType:string, [HTTP#HTTP,HTTPS#HTTPS], desc:最大长度为32*/ \"parameterFormatType \": \"json\", /*ro, req, enum, 参数格式类型, subType:string, [json#json,XML#XML,querystring#querystring], desc:最大长度为32*/ \"addressingFormatType\": \"ipaddress\", /*ro, req, enum, 地址格式类型, subType:string, [ipaddress#IP地址,hostname#域名], desc:最大长度为32*/ \"ipAddress\": \"ipv4\", /*ro, opt, enum, IP地址类型, subType:string, [ipv4#ipv4,ipv6#ipv6], desc:最大长度为32*/ \"ipv6Address\": \"test\", /*ro, opt, string, ipv6地址, range:[,], desc:最大长度为128*/ \"portNo\": 7200, /*ro, opt, int, 报警通信端口号, range:[,], step:, unit:, unitType:*/ \"httpAuthenticationMethod\": \"MD5digest\", /*ro, req, string, HTTP认证方法, range:[,], desc:最大长度为32,MD5digest或none(不认证)*/ \"uploadImagesDataType\": \"URL\", /*ro, opt, string, 上传图片数据类型, range:[,], desc:URL-图片存储URL(需要支持并且配置云存储), binary-图片二进制数据, 最大长度为32*/ \"format\": \"json\", /*ro, opt, string, 协议交互格式, range:[,]*/ \"eventType\": \"alarmResult\" /*ro, req, string, 触发的事件类型, range:[,], desc:alarmResult-人脸比对报警上报, captureResult-人脸抓拍上报, HFPD -高频人员检测事件, behaviorResult-行为分析结果上报, executeControlResult-车牌布控, LFPD-低频人员侦测, AIOP_Video-AI 开放平台视频分析任务结果上报, string 类型, 最大长度为64, 多个类型用逗号隔开*/ } ] }