【问题标题】:Using --digest option for 'digest authentication' with curl in linux在linux中使用--digest选项进行'digest authentication'和curl
【发布时间】:2016-06-21 03:44:20
【问题描述】:

我正在尝试在 Linux 中使用 curl 更改基于 Onvif 的相机的日期。我已经成功地在 c# 中完成了它并使用了摘要身份验证,但我被困在这种情况下。

我正在使用以下命令:

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>'

我得到以下结果(似乎卡住了):

  • 即将 connect() 到 10.104.37.1 端口 80 (#0)
  • 正在尝试连接 10.104.37.1...
  • 已连接到 10.104.37.1 (10.104.37.1) 端口 80 (#0)
  • 使用 Digest 和用户“admin”进行服务器身份验证
  • POST /onvif/device_service HTTP/1.1
  • 用户代理:curl/7.19.7 (i486-pc-linux-gnu) libcurl/7.19.7 OpenSSL/0.9.8k zlib/1.2.3.3 libidn/1.15
  • 主机:10.104.37.1
  • 接受:/
  • 内容长度:0
  • 内容类型:application/x-www-form-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是不是很奇怪?

【问题讨论】:

    标签: http curl http-authentication digest-authentication onvif


    【解决方案1】:

    我终于找到了解决这个问题的解决方案:我在完整命令中添加了选项 --anyauth。 无论如何,我仍然不知道为什么使用 --digest 选项会卡住进程。

    【讨论】:

    • 这真的很奇怪 - 但我可以确认它对我有用,而 --digest 会给我的 Content-Length 标头为 0。
    猜你喜欢
    • 1970-01-01
    • 2014-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-06
    • 2013-01-28
    • 2011-11-01
    • 1970-01-01
    相关资源
    最近更新 更多