【发布时间】:2010-06-25 17:53:56
【问题描述】:
我有需要使用的 java 服务(不能修改它)和使用摘要 HTTP 授权的 Web 服务器。我正在使用 HttpWebRequest 与服务器通信(使用 GET 方法)。提供了身份验证所需的 NetworkCredentials。但是调用 GetResponse() 会产生错误 400(错误请求)。
地址:http://info.server.com/someFolder/servlet.do?cmd=get_info¶m=value
请求示例(不完整,只有相关的东西):
GET /someFolder/servlet.do?cmd=get_info¶m=value HTTP/1.1
主机:info.server.com
响应:需要 401 授权
第二次请求:
GET /someFolder/servlet.do?cmd=get_info¶m=value HTTP/1.1
主机:info.server.com
授权:摘要 ... uri="/someFolder/servlet.do" ...(显然不是完整的标题)
第二个响应:400 错误请求
我已经在 Web 浏览器(IE、Firefox)上尝试过这个请求并且它可以工作,但似乎浏览器将整个请求 uri 放在 Authorization 标头的 uri 部分,而 HttpWebRequest 如上所述格式化标头。 有谁知道如何强制 HttpWebRequest 将整个 uri 放入 Authorization 标头中? 或者也许还有其他解决方案?
感谢您的帮助!
【问题讨论】:
标签: httpwebrequest get digest-authorisation