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?