web-services - ONVIF 和 PTZ 访问网络摄像机

标签 web-services soap onvif

关于 ONVIF IP 摄像机规范,我遇到了麻烦。我已经构建了一个程序,能够使用该标准联系相机并向它们发送标准媒体/设备请求。

问题是我现在正尝试通过 ONVIF 访问他们的 PTZ 功能,而对于我的两台摄像机,我只收到以下错误:

HTTP/1.1 400 Bad Request
Content-Type: application/soap+xml; charset=utf-8
Content-Length: 741
Connection: keep-alive

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://www.w3.org/2003/05/soap-envelope" xmlns:SOAP-ENC="http://www.w3.org/2003/05/soap-encoding" xmlns:ter="http://www.onvif.org/ver10/error">

<SOAP-ENV:Body>
<SOAP-ENV:Fault>
<SOAP-ENV:Code>
<SOAP-ENV:Value>SOAP-ENV:Sender</SOAP-ENV:Value>
<SOAP-ENV:Subcode>
<SOAP-ENV:Value>ter:Namespace</SOAP-ENV:Value>
</SOAP-ENV:Subcode>
</SOAP-ENV:Code>
<SOAP-ENV:Reason>
<SOAP-ENV:Text xml:lang="en">Namespace Error</SOAP-ENV:Text></SOAP-ENV:Reason>
<SOAP-ENV:Node>http://www.w3.org/2003/05/soap-envelope/node/ultimateReceiver</SOAP-ENV:Node>
<SOAP-ENV:Role>http://www.w3.org/2003/05/soap-envelope/node/ultimateReceiver</SOAP-ENV:Role>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

所以,命名空间错误。

问题是我通过 GetCapabilities() ONVIF 请求获得了摄像机的 onvif PTZ 命名空间 (/onvif/ptz_service)。

对于我发送到我的两个 ONVIF 摄像机中的任何一个的任何 PTZ onvif 请求,问题都是一样的。

我已经尝试找到使用 ONVIF 的软件让它们发送 PTZ 请求并查看它们是否有效,但我没有找到一个(这里有一个 ONVIF 设备管理器:http://sourceforge.net/projects/onvifdm/ 但没有实际的 PTZ 处理,除非问题出在我的相机上)。

最佳答案

我发现了问题,坦率地说,这令人失望:

我使用的是 ONVIF PTZ WSDL 文件的第二个版本 (ver20),因为第一个版本 (ver10) 被认为已弃用。

事实证明,即使是我几天前刚买的带有最新固件的最新 ONVIF 相机,仍在使用 ver10。

由于我无法使用 SvcUtil 来使用 ver10 wsdl 生成我的代理类,我尝试将所有“http://www.onvif.org/ver20/ptz/wsdl”命名空间切换为 ver10 而不是 ver20,并且有用。目前。我希望它能继续与其他相机一起工作......

关于web-services - ONVIF 和 PTZ 访问网络摄像机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7023782/

相关文章:

asp.net - 增加 IIS7 中 Web 服务的最大并发连接数(负载测试)

xml - 使用 nagios 向 web 服务发送 xml 请求,并检索响应

java - 来自 Windows 命令行的 SOAP Web 服务中的 SSL 证书问题

c++ - gSOAP 和 ONVIF NVT 命名空间/标记问题

java - 使用 Java 的 ONVIF 设备集成

onvif - 从 bash 或 REST 设置海康威视摄像头的日期和时间?

c# - 如何从客户端应用程序获取运行 Web 服务的服务器的 SSL 证书? - C#.NET

soap - 如何使用 Gatling 2.2.0 调用 SOAP Web 服务

java - 从 Netsuite 中保存的搜索中获取字段值为空

java - Java SE 上的 SOAP 消息