海康威视http接口测试及趟坑
测试http接口
通过测试发现,海康威视提供了两类http接口,一种是基于PSIA,另一种是基于CGI的接口(至少海康官网有这文档),但是测试时候其实很多都不能直接用,下面就说一下自己的测试结果。
ISAPI
在ISAPI协议接口下,通过查询海康的接口返回的xml数据可以发现这个接口下所支持的资源列表,如下
<ResourceList xmlns="http://www.hikvision.com/ver20/XMLSchema" version="2.0">
<Resource version="1.0">
<name>index</name>
<version>1.0</version>
<type>resource</type>
</Resource>
<Resource version="1.0">
<name>indexr</name>
<version>1.0</version>
<type>resource</type>
</Resource>
<Resource version="1.0">
<name>description</name>
<version>1.0</version>
<type>resource</type>
</Resource>
<Resource version="1.0">
<name>System</name>
<version>1.0</version>
<type>service</type>
</Resource>
<Resource version="1.0">
<name>Security</name>
<version>1.0</version>
<type>service</type>
</Resource>
<Resource version="1.0">
<name>Event</name>
<version>1.0</version>
<type>service</type>
</Resource>
<Resource version="1.0">
<name>Streaming</name>
<version>1.0</version>
<type>service</type>
</Resource>
<Resource version="1.0">
<name>Snapshot</name>
<version>1.0</version>
<type>service</type>
</Resource>
<Resource version="1.0">
<name>PTZCtrl</name>
<version>1.0</version>
<type>service</type>
</Resource>
<Resource version="1.0">
<name>ContentMgmt</name>
<version>1.0</version>
<type>service</type>
</Resource>
<Resource version="1.0">
<name>Smart</name>
<version>1.0</version>
<type>service</type>
</Resource>
<Resource version="1.0">
<name>WLAlarm</name>
<version>1.0</version>
<type>service</type>
</Resource>
<Resource version="1.0">
<name>Image</name>
<version>1.0</version>
<type>service</type>
</Resource>
<Resource version="1.0">
<name>Traffic</name>
<version>1.0</version>
<type>service</type>
</Resource>
<Resource version="1.0">
<name>ITC</name>
<version>1.0</version>
<type>service</type>
</Resource>
<Resource version="1.0">
<name>MegaPlatform</name>
<version>1.0</version>
<type>service</type>
</Resource>
<Resource version="1.0">
<name>GIS</name>
<version>1.0</version>
<type>service</type>
</Resource>
<Resource version="1.0">
<name>Intelligent</name>
<version>1.0</version>
<type>service</type>
</Resource>
<Resource version="1.0">
<name>MasterSlaveTracking</name>
<version>1.0</version>
<type>service</type>
</Resource>
<Resource version="1.0">
<name>Compass</name>
<version>1.0</version>
<type>service</type>
</Resource>
<Resource version="1.0">
<name>Panorama</name>
<version>1.0</version>
<type>service</type>
</Resource>
<Resource version="1.0">
<name>Judicial</name>
<version>1.0</version>
<type>service</type>
</Resource>
<Resource version="1.0">
<name>OpenPlatform</name>
<version>1.0</version>
<type>service</type>
</Resource>
<Resource version="1.0">
<name>OrgPreview</name>
<version>1.0</version>
<type>service</type>
</Resource>
<Resource version="1.0">
<name>Custom</name>
<version>1.0</version>
<type>service</type>
</Resource>
</ResourceList>
需要我们注意的是这个列表下的请求都需要满足http://ip:[port]/ISAPI/[resources]
的格式。
海康比较坑的地方
通过查看海康提供的CGI和PSIA文档,我们可以清楚的看到它下面支持System、Network、IO、Video、Audio、Two way auddio、Serial、Security、Streaming、Motion Detection、Event、PTZ,但是文档中所给出的接口都无法使用,准确说不是不能使用,而是没有给出完整的资源url,需要结合PSIA文档来看。通过测试以及查看网上一位老兄给出的海康http能力测试文档,总结出几乎所有的接口都需要加/ISAPI/
这个资源前缀(至少我用的这个型号是这样)。
接口总结
注意,这里只是点一点比较坑的接口,这里只是趟一趟坑,需要哪些接口、具体更详细的使用请参考海康的CGI英文文档,能够让你遇到这种需求时候,能够作个正确的参考。
PTZCtrl
url: /ISAPI/PTZCtrl/channels/101/absolute
接口描述:控制球机的绝对坐标接口。
参数:
1.elevation: 高度 每100对应于T增加10°,也就是向下10°,T最多90°,也就是说对应0-900(这部分实际可以在海康摄像头自带后台中调节,但是最宽的范围也就-15°-90°)
2.azimuth: 经纬度 0对应于P的0,每增加100等于顺时针旋转10°,旋转度数相对于初始零点,可以旋转360°,故值的范围就是0-3600
3.absoluteZoom: 放缩倍数 0-230 对应于摄像头0-23级光学放缩倍数(具体看你自己球机参数)
注:接下来所写的所有接口都是System下的,但是在海康文档中却将它与System并写一块且没有给出实际的资源地址。下面是经过测试后的资源地址。
Video
url: /ISPAI/System/Video/[resources]
Audio
url: /ISPAI/System/Audio/[resources]
Serial
url: /ISAPI/System/Serial/[resources]
Network
url: /ISAPI/System/Network/[resources]
IO
url: /ISAPI/System/IO/[resources]
最后
欢迎各位批评指正以及交流。