自动处理Cookie的C#/.NET HttpWebRequest+HttpWebResponse

57

有没有办法在使用HttpWebRequest/HttpWebResponse对象时自动处理cookie?我希望能够在.NET环境中找到类似于LWP::UserAgent及其行为的功能(perl)。

有什么建议或者意见吗?

1个回答

130

我认为你需要的是CookieContainer类。如果我正确理解你想要做的事情,你有请求和响应的分开对象,并且希望自动将响应cookie集合传输到下一个请求cookie集合中。尝试使用以下代码:

CookieContainer cookieJar = new CookieContainer();
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("http://www.google.com");
request.CookieContainer = cookieJar;

HttpWebResponse response = (HttpWebResponse)request.GetResponse();
int cookieCount = cookieJar.Count;

一旦您创建了一个"cookieJar"并将其设置为请求的CookieContainer,它将存储来自响应的任何cookie,因此在上面的示例中,一旦访问Google.com,cookie jar的计数将为"1"。请求和响应的cookie容器属性将存储指向cookieJar的指针,因此cookie会自动处理并在对象之间共享。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接