日期:2014-05-17  浏览次数:20841 次

小弟初学,询问下CookieContainer的问题!
C# code

        static void Main(string[] args)
        {
            CookieContainer cc = new CookieContainer();
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://www.baidu.com");
            request.CookieContainer = cc;
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            foreach (Cookie c in response.Cookies)
            {
                Console.WriteLine(c.ToString());
            }
            int s = cc.Count;
            Console.WriteLine(s);
            Console.ReadKey();
        }



问题:为什么s还是0???

------解决方案--------------------
怎么正好选了百度主页,可能是服务器response没设置cookie。你用HttpAnalyzer工具看下IE打开百度主页的过程。
------解决方案--------------------
你的代码写法完全是正确的,你的理解也是正确的。

因为你访问的www.baidu.com没有想客户端写入cookie,你的CookieContainer里面当然没有啊。

只有当你访问的链接向客户端写入了cookie的时候CookieContainer的值才会发生变化。

你可以去访问一个你自己的页面,然后response一个cookie,就可以看到变化了。