一旦我从 UDP 多播请求返回 239.255.255.250 的响应
我返回带有 XAddrs 的 ProbeMatchhttp://10.10.10.10:1234/onvif/device_service
我现在如何执行 GetSystemDateAndTime 和 GetDeviceInformation
这是对 10.10.10.10 端口 1234 的 TCP/UDP 请求吗?
这是对 10.10.10.10 端口 80 的 HTTP 请求吗?
或者一旦我知道了设备的地址怎么办http:10.10.10.10:1234/onvif/device_service
然后呢
提前致谢
您只需向那里发送一个 HTTP 请求,因为 SOAP 通过 HTTP 工作。例如通过 CURL 会是这样的:
curl 10.10.10.10:1234/onvif/device_service -d '<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope"><s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><GetSystemDateAndTime xmlns="http://www.onvif.org/ver10/device/wsdl"/></s:Body></s:Envelope>'
结果你会得到类似这样的一些标题:
<tds:GetSystemDateAndTimeResponse>
<tds:SystemDateAndTime>
<tt:DateTimeType>Manual</tt:DateTimeType>
<tt:DaylightSavings>false</tt:DaylightSavings>
<tt:TimeZone>
<tt:TZ>MoroccoStandardTime0</tt:TZ>
</tt:TimeZone>
<tt:UTCDateTime>
<tt:Time>
<tt:Hour>10</tt:Hour>
<tt:Minute>5</tt:Minute>
<tt:Second>35</tt:Second>
</tt:Time>
<tt:Date>
<tt:Year>2014</tt:Year>
<tt:Month>3</tt:Month>
<tt:Day>14</tt:Day>
</tt:Date>
</tt:UTCDateTime>
</tds:SystemDateAndTime>
</tds:GetSystemDateAndTimeResponse>
并且不要忘记,大多数操作都需要在请求中包含授权标头。
验证
In ONVIF 应用程序员指南 https://www.onvif.org/wp-content/uploads/2016/12/ONVIF_WG-APG-Application_Programmers_Guide-1.pdf第 35 页描述了如何完成身份验证。例如,它看起来像这样:
<s:Header>
<Security s:mustUnderstand="1" xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<UsernameToken>
<Username>admin</Username>
<Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest">MuMnyh3wTxGWOCc=</Password>
<Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">8Qqve9KCkNhQAAAAAAA==</Nonce>
<Created xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">2014-03-04T14:03:05.130Z</Created>
</UsernameToken>
</Security>
</s:Header>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)