Onvif - GetDigitalInputs以命名空间错误

时间:2018-03-06 11:36:42

标签: soap onvif

从使用ONVIF作为通信协议的相机获取数字输入时遇到问题。我知道,相机有2个数字输入,无需登录即可匿名访问。

我正在使用此WSDL中的操作GetDigitalInputshttps://www.onvif.org/ver10/deviceio.wsdl。其他一些行动也有效。例如,我可以成功使用GetRelayOutputs

以下是我要将相机发送到deviceIO服务网址(http://ipaddress/onvif/deviceio_service)的请求。设备IO服务URL是从GetCapabilities操作的结果中获取的:

<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope">
    <s:Body>
      <GetDigitalInputs xmlns="http://www.onvif.org/ver10/deviceIO/wsdl" />
    </s:Body>
</s:Envelope>

这是回复

<?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>

我尝试将GetDigitalInputs的命名空间更改为http://www.onvif.org/ver10/deviceio/wsdlhttp://www.onvif.org/ver10/device/wsdl。两者都不起作用。

我尝试使用Onvif Device Test Tool,这与我的问题相同。

我对行动GetSerialPorts遇到了同样的问题。两种不同的博世相机。

1 个答案:

答案 0 :(得分:0)

以下XML怎么样?

<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope">
    <s:Body>
      <tmd:GetDigitalInputs xmlns:tmd="http://www.onvif.org/ver10/deviceIO/wsdl" />
    </s:Body>
</s:Envelope>