使用SOAP ONVIF的时候,想调用PTZ功能,但调用失败,返回的是下面这个信息:
<env:Subcode><env:Value>ter:ActionNotSupportedenv:Value>
<env:Subcode><env:Value>ter:InvalidOperationenv:Value>
env:Subcode>
env:Subcode>
env:Code>
<env:Reason><env:Text xml:lang="en">Optional Action Not Implementedenv:Text>
env:Reason>
但使用别人写好的程序,明明是可以调用的,摄像头也可以转动的,他们发送的SOAP协议格式如下:
我调用的时候,发送的协议格式如下:
好像只有格式不太一样,具体内容没啥差别,为啥会不行呢?
使用过不同的程序调用摄像头转动,摄像头确定支持PTZ功能,我个人所能看到的,就是调用PTZ功能时发送的格式不同,但格式应当如何修改?SOAP版本是2.8.124,版本和格式有关?
可能是由于SOAP消息格式不正确导致的
以下答案基于ChatGPT与GISer Liu编写:
根据你提供的信息,可以初步推断是你的SOAP协议格式存在问题,导致无法控制摄像头转动。建议你仔细对比自己发送的SOAP协议格式和别人的程序发送的格式,找出差异,并尝试进行调整。
以下是一些常见的问题和解决方案,供你参考:
SOAP协议格式是基于XML的,因此需要注意XML格式的正确性。如果XML格式不正确,摄像头无法正确解析协议内容。可以使用XML解析工具,检查XML格式是否正确。
PTZ功能的调用需要传入一些参数,如果参数不正确或缺失,可能会导致调用失败。可以仔细查看摄像头的API文档,确认需要传入的参数及其格式,以确保参数正确无误。
SOAP协议中包含一些头部信息,用于描述协议的相关信息。如果头部信息不正确或缺失,可能会导致协议无法正确解析。可以仔细查看摄像头的API文档,确认需要传入的头部信息及其格式,以确保头部信息正确无误。
SOAP协议中的动作(Action)用于描述调用的具体功能。如果动作不正确或不支持,可能会导致调用失败。可以仔细查看摄像头的API文档,确认支持的动作及其格式,以确保动作正确无误。
希望以上信息能对你有所帮助,祝你成功控制摄像头转动!
该回答引用ChatGPT
如果您在使用SOAP ONVIF时遇到调用PTZ功能失败的问题,您可以尝试检查您的网络连接是否正常,并确保您的设备支持PTZ功能。此外,您还可以尝试检查您的SOAP ONVIF代码,以确保您的代码正确无误。如果以上方法都无法解决问题,您可以尝试联系SOAP ONVIF的技术支持团队,以获得更多帮助。