Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#HttpClient指定每个请求使用哪个cookie容器_C# - Fatal编程技术网

C#HttpClient指定每个请求使用哪个cookie容器

C#HttpClient指定每个请求使用哪个cookie容器,c#,C#,有没有一种方法可以通过HttpClient发送请求,从而将每个请求/响应链接到给定的cookie容器?或者其他一些技术,允许以用户定义的方式管理特定域名的cookie,即用户名/pw 我目前的做法是为每个用户名/登录名实例化一个新的Httpclient类,但我想知道是否有更优雅的方法 如果我理解您的问题,我相信您需要为希望与之交互的每个域创建一个新的CookieContainer和HttpClient实例 var cookieContainer = new CookieContainer();

有没有一种方法可以通过HttpClient发送请求,从而将每个请求/响应链接到给定的cookie容器?或者其他一些技术,允许以用户定义的方式管理特定域名的cookie,即用户名/pw


我目前的做法是为每个用户名/登录名实例化一个新的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应该在应用程序的生命周期内生存的问题而挣扎。虽然这样做有效,但会导致应用程序不稳定。