如何将webbrowser控件的Cookie倒入CookieContainer供WebRequest使用

本文介绍了一种在C#中管理WebCookie的方法,通过将WebBrowser中的Cookie转换并存储到自定义的CookieContainer中,实现了跨请求的Cookie传递。文章详细讲解了如何从WebBrowser.Document.Cookie中读取Cookie字符串,将其解析为Cookie对象,并添加到CookieContainer中,最后使用这个CookieContainer进行HTTP请求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先建一个 "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();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值