我有一个需要基本身份验证标头的网络服务。但是,当我使用
调用它时 var header = "Authorization: Basic " +
CreateBasicHttpAuthenticationHeader(login, password);
webRequest.Headers.Add(header);
var webResponse = (HttpWebResponse)webRequest.GetResponse();
它返回303 - 见其他:
POST https://myservice/rates HTTP/1.1
Authorization: Basic QXZ...NjY=
Content-Type: application/x-content
X-API-Version: 1.1
If-Unmodified-Since: Mon, 23 Sep 2013 08:32:27 GMT
User-Agent: UserAgent
响应:
HTTP/1.1 303 See Other
Date: Mon, 23 Sep 2013 08:30:57 GMT
X-Opaque-ID: q8nxxxxc
Location: https://myservice/rates
Content-Length: 0
.Net然后自动向新位置发送GET请求:
GET https://myservice/rates HTTP/1.1
Content-Type: application/x-content
X-API-Version: 1.1
If-Unmodified-Since: Mon, 23 Sep 2013 08:32:27 GMT
User-Agent: UserAgent
但这次不发送Authorization标头。你知道一种告诉它在所有电话上发送所有标题的方法吗?我应该告诉它不要遵循内容吗?
答案 0 :(得分:2)
您必须停用HttpRequest的AllowRedirect
属性。
然后你必须使用基本的auth标头构建自己的重定向系统。
这不是很好,但是.Net框架在重定向时会删除标题。