C# 获取网页HTML代码

public bool getweb(string strURL,out string buf)
  {
   buf="";
   try
   {
    //Uri url=new Uri(strURL,false);
    HttpWebRequest request;
    request = (HttpWebRequest)WebRequest.Create(strURL);
    request.Method="POST"; //Post请求方式
    request.ContentType="text/html;charset=gb2312"; //内容类型
    string paraUrlCoded = System.Web.HttpUtility.UrlEncode(""); //参数经过URL编码
    byte[] payload;
    payload = System.Text.Encoding.GetEncoding("GB2312").GetBytes(paraUrlCoded); //将URL编码后的字符串转化为字节
    request.ContentLength = payload.Length; //设置请求的ContentLength
    Stream writer = request.GetRequestStream(); //获得请求流
    writer.Write(payload,0,payload.Length); //将请求参数写入流
    writer.Close(); //关闭请求流
    HttpWebResponse response;
    response = (HttpWebResponse)request.GetResponse(); //获得响应流
    Stream s;
    s = response.GetResponseStream();
    StreamReader objReader = new StreamReader(s,System.Text.Encoding.GetEncoding("GB2312"));
    string HTML = "";
    string sLine ="";
    int i = 0;
    while (sLine!=null)
    {
     i++;
     sLine = objReader.ReadLine();
     if (sLine!=null)
      HTML += sLine;
    }
    //HTML = HTML.Replace("&lt;","<");
    //HTML = HTML.Replace("&gt;",">");
    buf=HTML;
    return true;
   }
   catch (Exception x)
   {   
    buf=x.Message.ToString();
    return false;    
   }
  }
 
带Cookie:
CookieContainer cc = new CookieContainer();
public bool getweb(string strURL,out string buf)
  {
   buf="";
   try
   {
    HttpWebRequest request;
    request = (HttpWebRequest)WebRequest.Create(strURL);
    request.Method="POST"; //Post请求方式
    request.ContentType="text/html;charset=gb2312"; //内容类型
    string paraUrlCoded = System.Web.HttpUtility.UrlEncode(""); //参数经过URL编码
    byte[] payload;
    payload = System.Text.Encoding.GetEncoding("GB2312").GetBytes(paraUrlCoded); //将URL编码后的字符串转化为字节
    request.ContentLength = payload.Length; //设置请求的ContentLength
    Stream writer = request.GetRequestStream(); //获得请求流
    writer.Write(payload,0,payload.Length); //将请求参数写入流
    writer.Close(); //关闭请求流
    HttpWebResponse response;
    response = (HttpWebResponse)request.GetResponse(); //获得响应流
    Stream s;
    s = response.GetResponseStream();
    StreamReader objReader = new StreamReader(s,System.Text.Encoding.GetEncoding("GB2312"));
    string HTML = "";
    string sLine ="";
    int i = 0;
    while (sLine!=null)
    {
     i++;
     sLine = objReader.ReadLine();
     if (sLine!=null)
      HTML += sLine;
    } 

    buf=HTML;
    return true;
   }
   catch (Exception x)
   {   
    buf=x.Message.ToString();
    return false;    
   }
  }
  public bool getweb(string strURL,out string buf,string postData)
  {
   buf="";
   try
   {   
    
    ASCIIEncoding encoding = new ASCIIEncoding();
    byte[] data = encoding.GetBytes(postData);
    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(strURL);
    request.Method = "POST";
    request.ContentType = "application/x-www-form-urlencoded";
    request.ContentLength = data.Length;
    Stream newStream = request.GetRequestStream();
    newStream.Write(data, 0, data.Length);
    newStream.Close();
                   
    request.CookieContainer = cc;
                   
    HttpWebResponse response = (HttpWebResponse)request.GetResponse();
    cc.Add(response.Cookies);
    Stream stream = response.GetResponseStream();
    string sHtml = new StreamReader(stream, System.Text.Encoding.Default).ReadToEnd();
    buf=sHtml;
    return true;
   }
   catch (Exception x)
   {   
    buf=x.Message.ToString();
    return false;    
   }
  }
posted @ 2007-07-30 14:23  jacktu  阅读(14010)  评论(2编辑  收藏  举报