【发布时间】:2018-10-24 12:10:29
【问题描述】:
我正在向服务器发送一个 get 请求,服务器正在重定向到 4 进一步调用,然后返回响应。 HttpClient 给出了异常,没有提供授权令牌。
您能告诉我,如何在多个重定向中传递相同的授权令牌吗?如果我设置“AllowAutoRedirect=false”并返回 RanToComplation 状态,它工作正常。 这是我的方法:
static async Task CallWebAPIAsync()
{
WebRequestHandler webRequestHandler = new WebRequestHandler();
webRequestHandler.UseDefaultCredentials = true;
webRequestHandler.AllowPipelining = true;
webRequestHandler.AllowAutoRedirect = true;
using (var client = new HttpClient(webRequestHandler))
{
client.BaseAddress = new Uri("https://apirequest");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", token);
client.Timeout = TimeSpan.FromSeconds(30000);
//GET Method
var response = await client.GetAsync("user").ConfigureAwait(false);
if (response.IsSuccessStatusCode)
{
var responseresult = await response.Content.ReadAsStringAsync();
Console.WriteLine("Id:{0}\tName:{1}", responseresult);
}
else
{
Console.WriteLine("Internal server Error");
}
}
【问题讨论】:
标签: c# httpclient system.net.httpwebrequest .net-4.7