HttpWebRequest和控件WebBrowser共用同一个cookie.也就是说如何将WebBrowser的cookie信息传给HttpWebRequest.

解决方案 »

  1.   

    HttpWebRequest不是可以直接获取cookie吗,为什么要把WebBrowser的cookie信息传给HttpWebRequest,有点不解哦
      

  2.   

    因为是用WebBrowser运行其中的脚本,然后再用HttpWebRequest将分析出来的东西POST上服务器
      

  3.   

    这是我以前做过的东西
    先建一个"CookieContainer" 把WebBrowser中的Cookie保存在里面
            
       //在WebBrowser中登录 cookie保存在 WebBrowser.Document.Cookie中
                
                CookieContainer myCookieContainer = new CookieContainer();
                //String 的Cookie 要转成 Cookie型的 并放入CookieContainer中
                string cookieStr = webBrowser1.Document.Cookie;
                string[] cookstr = cookieStr.Split(';');
                foreach (string str in cookstr)
                {
                    string[] cookieNameValue = str.Split('=');
                    Cookie ck = new Cookie(cookieNameValue[0].Trim().ToString(), cookieNameValue[1].Trim().ToString());
                    ck.Domain = "www.abc.com";//必须写对
                    myCookieContainer.Add(ck);
                }
                HttpWebRequest hreq = (HttpWebRequest)HttpWebRequest.Create("http://www.abc.com/search.asp");
                hreq.Method = "POST";
                hreq.ContentType = "application/x-www-form-urlencoded";
               
                //自己创建的CookieContainer
                hreq.CookieContainer = myCookieContainer;
               
                string postdata = "id=2005&action=search&name=";
                byte[] byte1 = Encoding.ASCII.GetBytes(postdata);
                hreq.ContentLength = byte1.Length;
                
                Stream poststream = hreq.GetRequestStream();
                poststream.Write(byte1, 0, byte1.Length);
                poststream.Close();
            
                HttpWebResponse hres = (HttpWebResponse)hreq.GetResponse();