【问题标题】:C# CookieContainer not storing cookies from request to response?C# CookieContainer 不存储从请求到响应的 cookie?
【发布时间】:2025-12-20 07:21:08
【问题描述】:

我正在发送请求,但 cookie 没有存储在我的容器中以进行响应?

代码示例-

        string uri = "https://www.localhost.com/"
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);
        request.ContentType = "application/x-www-form-urlencoded";
        CookieContainer cookies = new CookieContainer();
        request.CookieContainer = cookies;
        System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;


        using (Stream stream = request.GetRequestStream())
        {
            byte[] bytes = new UTF8Encoding().GetBytes(s);
            stream.Write(bytes, 0, bytes.Length);
        }


        using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
        {
            using (Stream stream2 = response.GetResponseStream())
                {
                    using (StreamReader reader = new StreamReader(stream2, Encoding.UTF8))
                    {
                        str6 = reader.ReadToEnd();
                    }
                }
        }

如你所见,我已经实现了

  CookieContainer cookies = new CookieContainer();
  request.CookieContainer = cookies;

哪个应该将来自请求的 cookie 存储在容器中,以便在响应权中进一步使用?就像响应需要请求 cookie 来加载页面一样。

【问题讨论】:

    标签: c# httpwebrequest httpwebresponse cookiecontainer


    【解决方案1】:

    我建议使用 HttpClient,因为它会为您处理 cookie,而且通常更易于使用。另请注意,即使它是一次性的,您通常也应该在整个应用程序中使用相同的 HttpClient。见:https://aspnetmonsters.com/2016/08/2016-08-27-httpclientwrong/

    【讨论】: