我有一个批处理脚本,它使用curl 向网络中的网络服务器发出http-get 请求。401: Unauthorized问题是在curl中,即使我发送了用户名和密码,与仅在谷歌浏览器等浏览器中输入链接返回相比,我也得到了响应200: OK
C:\Users\myuser>curl -I "http://admin:admin1234@192.168.0.4/arg1=0&arg2=20&arg3=0"
HTTP/1.1 401 Unauthorized
WWW-Authenticate: Digest realm="Login to 28b6e642501d12764d8430059585d39b", qop="auth", nonce="1592879309", opaque="ecd7f630cfdef2dec4aebb35f81708e84d20a755"
Connection: close
Set-Cookie:secure; HttpOnly
CONTENT-LENGTH: 0
Run Code Online (Sandbox Code Playgroud)
我也尝试过:
curl -I -u admin:admin1234 "http://admin:admin1234@192.168.0.4/arg1=0&arg2=20&arg3=0"
curl -I -u admin:admin1234 "http://192.168.0.4/arg1=0&arg2=20&arg3=0"
Run Code Online (Sandbox Code Playgroud)
结果是一样的401: Unauthorized。我知道这不是我连接的设备的问题,因为如果我http://admin:admin1234@192.168.0.4/arg1=0&arg2=20&arg3=0在谷歌浏览器中使用,设备会按预期运行,并且还会返回200: OK
是否有不同的方式发送用户名和密码,如果用户名和密码没有出现在任何日志文件中,奖励
线索就在这个响应头字段中:
WWW-Authenticate: Digest
Run Code Online (Sandbox Code Playgroud)
这意味着服务器希望客户端使用Digest方法,而不是使用默认方法Basic 方法。-u
添加--digest到命令行,或者可能是--anyauth.
| 归档时间: |
|
| 查看次数: |
11431 次 |
| 最近记录: |