C#中HttpWebResponse获取不到cookies

最近有机会接触到了一点C#功能的开发,自然就有新东西要学,呵呵,我喜欢。

下面就是遇到的一个小问题,客户端需要做登录,然后保存好cookies,以便接下来的业务使用,但是登录成功后cookies获取不到。

下面是部分示例代码:


string Url= "http://www.some-domain.com/";
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(Url);
req.CookieContainer = new CookieContainer();
HttpWebResponse response = (HttpWebResponse)req.GetResponse();

此时直接通过response.Cookies获取,发现count为0,而在调试窗口可以查看到response对象的Headers中是包含Set-Cookie的。

原因是req对象的CookieContainer属性没有进行初始化,也就是没有准备好盒子来接收服务端返回的cookies。

解决也很简单,在获取返回之前进行初始化:

req.CookieContainer = new CookieContainer();

这时response.Cookies就会有你想要的东西了。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据