首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用HttpClient从IHttpClientFactory向请求添加cookie

如何使用HttpClient从IHttpClientFactory向请求添加cookie
EN

Stack Overflow用户
提问于 2020-07-01 14:04:15
回答 2查看 5.7K关注 0票数 6

背景

我正在开发一个ASP.NET Core,在这个API中我们调用了一个第三方API。这个第三方API要求每个请求都包含一个带有访问令牌的cookie。我们的API从一个声明(来自与请求关联的用户的ClaimsPrincipal )获得这个令牌。

详细信息

这个答案展示了如何在请求上设置cookie,但该示例要求手动构造HttpClient (以便能够用CookieContainer注入HttpClientHandler )。而且,由于手工实例化HttpClient是不可取的,我宁愿通过DI注入HttpClient这个例子说明了这一点(usin IHttpClientFactory)。

在我的服务中,我可以访问一个注入的HttpClient实例(_httpClient),最简单的函数如下所示:

代码语言:javascript
复制
public async Task<string> GetStatusAsync(ClaimsPrincipal user)
{
    // TODO: Add cookie with access token (from user's claims) before making request
    return await _httpClient.GetStringAsync(Endpoints.Status);
}

这个GitHub问题询问如何在使用IHttpClientFactory时包含授权cookie,答案是使用报头传播中间件。现在我要说的是:

据我所见,您在应用程序启动时在服务配置期间设置了报头传播中间件(包含所有头和cookie等等)。然而,在我们的API中,在实际向第三方API提出请求之前,我没有身份验证cookie的值。

问题

在发出实际请求之前,如何才能将cookie添加到HttpClient实例上,然后使用IHttpClientFactory注入到服务中?

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62678657

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档