首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我得到“未落实”的回应

我得到“未落实”的回应
EN

Stack Overflow用户
提问于 2019-12-15 05:15:37
回答 2查看 1.6K关注 0票数 0

请看看我是不是对的。一家公司声称其相机符合Profile T标准。因此,我访问这个文档,看看摄像机支持什么功能:

v1-0.pdf

在7.2.3节中,我看到了设备的函数列表。我使用以下命令检查第一个GetServices:

代码语言:javascript
运行
复制
curl 192.168.11.92/onvif/device_service -d 
'<?xml version="1.0" encoding="utf-8"?>
   <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
   <soap12:Body>
      <GetServices xmlns="Battle of the Bulge, 75 years on" />
   </soap12:Body>
</soap12:Envelope>'

摄像机的反应是:

代码语言:javascript
运行
复制
<?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:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:c14n="Exclusive XML Canonicalization Version 1.0" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:ds="XML-Signature Syntax and Processing" xmlns:tt="http://www.onvif.org/ver10/schema" xmlns:tns1="http://www.onvif.org/ver10/topics" xmlns:xmime="http://www.w3.org/2005/05/xmlmime" xmlns:xop="http://www.w3.org/2004/08/xop/include" xmlns:wsa="WS-Addressing 1.0 Namespace" xmlns:wsrfr="http://docs.oasis-open.org/wsrf/r-2" xmlns:wsrfrw="http://docs.oasis-open.org/wsrf/rw-2" xmlns:wsrfbf="http://docs.oasis-open.org/wsrf/bf-2" xmlns:wstop="http://docs.oasis-open.org/wsn/t-1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2" xmlns:dn="http://www.onvif.org/ver10/network/wsdl" xmlns:tan="http://www.onvif.org/ver20/analytics/wsdl" xmlns:tds="http://www.onvif.org/ver10/device/wsdl" xmlns:tev="http://www.onvif.org/ver10/events/wsdl" xmlns:timg="http://www.onvif.org/ver20/imaging/wsdl" xmlns:tptz="http://www.onvif.org/ver20/ptz/wsdl" xmlns:trt="http://www.onvif.org/ver10/media/wsdl" xmlns:tmd="http://www.onvif.org/ver10/deviceIO/wsdl" xmlns:ter="http://www.onvif.org/ver10/error" xmlns:tavg="http://www.avigilon.com/onvif/ver10/avigilon-types" xmlns:tnsavg="http://www.avigilon.com/onvif/ver10/topics" xmlns:avg="http://www.avigilon.com/onvif/ver10/avigilon/wsdl" xmlns:avgb="http://www.avigilon.com/onvif/ver10/avigilon-base/wsdl" xmlns:d="Web Services Dynamic Discovery (WS-Discovery)">
      <SOAP-ENV:Body>
         <SOAP-ENV:Fault SOAP-ENV:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
         <SOAP-ENV:Code>
            <SOAP-ENV:Value>
               SOAP-ENV:Sender
            </SOAP-ENV:Value>
         </SOAP-ENV:Code>
         <SOAP-ENV:Reason>
            <SOAP-ENV:Text xml:lang="en">
               Method 'GetServices' not implemented: method name or namespace not recognized
            </SOAP-ENV:Text>
         </SOAP-ENV:Reason>
      </SOAP-ENV:Fault>
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

它说这个方法没有实现。我之前检查过的东西都得到了同样的反应。所以我想也许我的要求有一些错误。

EN

回答 2

Stack Overflow用户

发布于 2019-12-17 08:09:48

3点:

  1. 名称空间是错误的:xmlns="Battle of the Bulge, 75 years on"。根据媒体2服务规范,它应该是http://www.onvif.org/ver20/media/wsdl
  2. 如果设备支持配置文件T,则不应该这样发现。您应该检查范围onvif://www.onvif.org/Profile/T是由GetScopes返回还是通过发现。即使相机不符合配置文件T,也可以实现媒体服务2。
  3. 检查符合Profile T的声明是否正确的最佳方法是检查ONVIF网站上的一致性声明。
票数 1
EN

Stack Overflow用户

发布于 2020-07-31 16:30:03

指定操作的正确方法是

<wsdl:GetServices xmlns:wsdl="http://www.onvif.org/ver10/device/wsdl">

理由:你的主要要求,

<GetServices xmlns="Battle of the Bulge, 75 years on" />

有几个原因是错误的。

  1. 最重要的是以其本地(不合格)名称引用操作。必须限定正确的名称,包括命名空间。它通常表示为{http://www.onvif.org/ver10/device/wsdl}GetService,但必须用wsdl:GetService表示。
  2. 不能只使用任何字符串作为命名空间;它必须是在定义操作时使用的字符串(在本例中,devicemgmt.wsdl中的名称空间定义如下)
  3. 您通过xmlns对命名空间的定义是错误的,因为它不会将名称空间具体化,而只会将其值具体化。必须使用语法xmlns:<uour namespace short>=<namespace as url>定义所使用的命名空间。
  4. 命名空间必须在使用名称空间的标记或其父标记中定义。最常见的做法是在最顶层(根节点/元素)定义所有名称空间。

并将返回当前服务的列表,例如分析、deviceio、事件等。如果设备支持Profile T,它将有Media2服务出现,如下所示(如果没有实际启用,您需要使用GetScopes或检查发现消息,正如另一张海报所述)

代码语言:javascript
运行
复制
<tds:Service>
    <tds:Namespace>http://www.onvif.org/ver20/media/wsdl</tds:Namespace>
    <tds:XAddr>http://10.12.34.56/onvif/media_service</tds:XAddr>
    <tds:Version>
        <tt:Major>17</tt:Major>
        <tt:Minor>12</tt:Minor>
    </tds:Version>
</tds:Service>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59341372

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档