3
我想在Linux中使用curl来更改基于Onvif的相机的日期。我已经成功地在c#中使用摘要身份验证,但我坚持在这种情况下。使用 - 摘要选项用于在Linux中使用卷曲进行'摘要式身份验证'
我使用下面的命令:
curl -u "admin:admin" --digest http://10.104.37.1:80/onvif/device_service --data '<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"><SetSystemDateAndTime xmlns="http://www.onvif.org/ver10/device/wsdl"><DateTimeType>Manual</DateTimeType><DaylightSavings>false</DaylightSavings><TimeZone><TZ xmlns="http://www.onvif.org/ver10/schema">CST-0:00:00</TZ></TimeZone><UTCDateTime><Time xmlns="http://www.onvif.org/ver10/schema"><Hour>8</Hour><Minute>8</Minute><Second>8</Second></Time><Date xmlns="http://www.onvif.org/ver10/schema"><Year>2008</Year><Month>8</Month><Day>8</Day></Date></UTCDateTime></SetSystemDateAndTime></s:Body></s:Envelope>'
而且我得到以下结果(似乎被卡住):
- 关于以()连接到10.104.37.1端口80(#0)
- 尝试10.104.37.1 ...连接
- 连接到10.104.37.1(10.104.37.1)端口80(#0)
使用摘要与用户 '管理员'- 服务器认证
- POST/ONVIF/device_service HTTP/1.1
- 的User-Agent:卷曲/ 7.19.7(1486-PC-Linux的GNU)的libcurl/7.19.7的OpenSSL/0.9.8k ZLIB/1.2.3.3的libidn/1.15
- 主机:10.104.37.1
- 接受:/
- 的Content-Length:0
- 内容类型:应用/ X WWW的形状配合urlencoded
之后,没有任何反应。
我不得不说,如果我刚才读的日期(此操作不需要AUTH)...
curl -u admin:admin http://10.104.37.1:80/onvif/device_service --data '<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>'
...它是正确的,但如果我添加“--digest “,这个过程遵循之前评论过的行为。
任何人都可以给我一个提示吗?
谢谢!
编辑: 是不是很奇怪,内容长度= 0?