(转)与采集有关的两个小函数

private   static   string  PostData( string  url,  string  postdata, CookieContainer cookieContainer)
        
{
            
string outdata = string.Empty;
            HttpWebRequest request 
= (HttpWebRequest)WebRequest.Create(url);
            request.ContentType 
= "application/x-www-form-urlencoded";
            request.ContentLength 
= postdata.Length;
            request.UserAgent 
= userAgent;
            request.Method 
= "POST";
            request.CookieContainer 
= cookieContainer;
            
using (Stream inStream = request.GetRequestStream())
            
{
                
using (StreamWriter sw = new StreamWriter(inStream, Encoding.GetEncoding("gb2312")))
                
{
                    sw.Write(postdata);
                }

            }


            HttpWebResponse response 
= (HttpWebResponse)request.GetResponse();
            response.Cookies 
= cookieContainer.GetCookies(request.RequestUri);
            
using (Stream outStream = response.GetResponseStream())
            
{
                
using (StreamReader sr = new StreamReader(outStream, Encoding.GetEncoding("gb2312")))
                
{
                    outdata 
= sr.ReadToEnd();
                }

            }


            
return outdata;
        }


        
private   static   string  GetDate( string  url, CookieContainer myCookieContainer)
        
{
            HttpWebRequest request 
= (HttpWebRequest)WebRequest.Create(url);
            request.ContentType 
= "text/html";
            request.Method 
= "GET";
            request.CookieContainer 
= myCookieContainer;
            HttpWebResponse response 
= (HttpWebResponse)request.GetResponse();

            
string outdata = string.Empty;

            
if (request.HaveResponse)
            
{
                
foreach (Cookie returnCookie in response.Cookies)
                
{
                    
bool cookieFound = false;

                    
foreach (Cookie oldCookie in myCookieContainer.GetCookies(request.RequestUri))
                    
{
                        
if (returnCookie.Name.Equals(oldCookie.Name))
                        
{
                            oldCookie.Value 
= returnCookie.Value;
                            cookieFound 
= true;
                        }

                    }


                    
if (!cookieFound)
                        myCookieContainer.Add(returnCookie);
                }

            }


            
using (Stream outStream = response.GetResponseStream())
            
{
                
using (StreamReader sr = new StreamReader(outStream, Encoding.GetEncoding("gb2312")))
                
{
                    outdata 
= sr.ReadToEnd();
                }

            }


            
return outdata;
        }
 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值