C#HttpClient指定每个请求使用哪个cookie容器
有没有一种方法可以通过HttpClient发送请求,从而将每个请求/响应链接到给定的cookie容器?或者其他一些技术,允许以用户定义的方式管理特定域名的cookie,即用户名/pwC#HttpClient指定每个请求使用哪个cookie容器,c#,C#,有没有一种方法可以通过HttpClient发送请求,从而将每个请求/响应链接到给定的cookie容器?或者其他一些技术,允许以用户定义的方式管理特定域名的cookie,即用户名/pw 我目前的做法是为每个用户名/登录名实例化一个新的Httpclient类,但我想知道是否有更优雅的方法 如果我理解您的问题,我相信您需要为希望与之交互的每个域创建一个新的CookieContainer和HttpClient实例 var cookieContainer = new CookieContainer();
我目前的做法是为每个用户名/登录名实例化一个新的Httpclient类,但我想知道是否有更优雅的方法 如果我理解您的问题,我相信您需要为希望与之交互的每个域创建一个新的CookieContainer和HttpClient实例
var cookieContainer = new CookieContainer();
using(var handler = new HttpClientHandler { CookieContainer = cookieContainer })
{
using(var client = new HttpClient(handler))
{
...
}
}
你对我的理解是正确的。事实上,这正是我处理这个问题的方式。总是看起来效率低下为什么看起来效率低下?你想要实现什么?我在最初的问题中给出了一个用例,在同一个域名上多次登录。根据文档,为每个请求实例化一个新的HttpClient并不是我们想要的。“HttpClient旨在实例化一次,并在应用程序的整个生命周期内重复使用。特别是在服务器应用程序中,为每个请求创建新HttpClient实例将耗尽重载下可用的套接字数量。这将导致SocketException错误。”。因此,我正在为@cubesnycHttpClient应该在应用程序的生命周期内生存的问题而挣扎。虽然这样做有效,但会导致应用程序不稳定。