c# - 在 HttpClient 的多个重定向中传递授权标头
问题描述
我正在向服务器发送一个获取请求,服务器正在重定向到 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");
}
}
解决方案
我认为问题可能与此有关
必须在重定向时剥离授权标头。我目前正在尝试弄清楚如何解决它。
推荐阅读
- wpf - WPF Font Awesome 不能与 Caliburn.Micro 一起使用?
- node.js - 使用 mongoose 保存到 mongodb 失败但未显示错误
- r - R CMD 检查:全局变量没有可见绑定(使用包中的数据/数据集时)
- terraform - 使用 Terraform 创建 vsphere_virtual_machine 资源后展开 Linux 分区
- react-navigation - react-navigation - react native 中堆栈导航内的抽屉导航
- python - Feedparser 只返回数字而不是整个 URL
- r - 将公共列值交换到 R 中特定行的同一列
- python-3.x - pip install theanets 失败错误
- memory-leaks - 使用具有大型中间体的函数使用 dask 建立内存
- amazon-web-services - AWS - 从另一个 VPC 中的 AMI 构建时,SSH 到 EC2 超时