gpt4 book ai didi

c# - CookieContainer混淆

转载 作者:太空狗 更新时间:2023-10-29 23:01:14 29 4
gpt4 key购买 nike

据我了解,CookieContainer 通过 HttpWebRequests 持久化 cookie 的基本用法如下:

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
CookieContainer cookies = new CookieContainer();
request.CookieContainer = cookies;
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
// Do stuff with response
}

然后:

request = (HttpWebRequest)WebRequest.Create(new url);
request.CookieContainer = cookies;
etc...

但我无法理解此过程背后的逻辑。变量 cookies 在初始化后似乎没有在任何地方重新分配。来自第一个 WebResponse 的 cookie 究竟是如何携带到第二个 WebRequest 中的?

最佳答案

这是因为当您从网站检索响应时,它会自动填充您用于请求的 cookie 容器。您可以通过查看响应前后存在哪些 cookie 来对此进行测试:

//Build the request
Uri site = new Uri("http://www.google.com");
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(site);
CookieContainer cookies = new CookieContainer();
request.CookieContainer = cookies;

//Print out the number of cookies before the response (of course it will be blank)
Console.WriteLine(cookies.GetCookieHeader(site));

//Get the response and print out the cookies again
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
Console.WriteLine(cookies.GetCookieHeader(site));
}

Console.ReadKey();

关于c# - CookieContainer混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12024657/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com