我正在尝试向使用 BASIC 身份验证和 https 保护的服务发送 HTTP GET 请求。如果我使用 RESTClient Firefox 插件来这样做没有问题。我正在定义基本标头并将 GET 发送到 url,我得到了答案(json 中的数据)。
现在我正在使用 C# 开发一个 Windows 应用商店应用程序,该应用程序旨在使用该服务。我在清单中启用了所有必需的功能并编写了以下方法:
private async void HttpRequest()
{
string basic = "Basic ...........";
Uri testuri = new Uri(@"https://...Servlet");
HttpClient client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", basic);
Task<HttpResponseMessage> response = client.GetAsync(testuri);
var text = await response;
var message = text.RequestMessage;
}
我尝试了许多不同的可能性,例如获取响应字符串,但一切都导致来自服务器的 401 状态代码答案。
我看了很多类似的问题,我对通信的理解如下:客户端请求->服务器响应401->客户端发送授权标头->服务器响应200(OK)
我不明白为什么我会收到 401“未授权”状态码,尽管我一开始就发送了授权标头。如果有人知道在 RESTClient 中是如何处理的,那将会很有趣。
BASIC 标头绝对正确,我将其与 RESTClient 中的标头进行了比较。
如果有人可以帮助我,那就太好了。
在此先感谢和亲切的问候, Max