求一个通用函数,参数为一个网页对应的URL地址(string类型),返回值:该网页所对应的html原文档(string类型),形如下:    private string getHtml(string url)
   {
      ... //得到url所对应的网页的html原文档.
   }
    

解决方案 »

  1.   


    private string getHtml(string url)
    {
        System.Net.WebClient wc = new System.Net.WebClient();
        return wc.DownloadString(url);

      

  2.   

    HttpWebRequest 也可// Prepare web request...
    HttpWebRequest myRequest =
      (HttpWebRequest)WebRequest.Create("http://localhost/MyIdentity/Default.aspx");
    myRequest.Method = "POST";
    myRequest.ContentType="application/x-www-form-urlencoded";
    myRequest.ContentLength = data.Length;
    Stream newStream=myRequest.GetRequestStream();
    // Send the data.
    newStream.Write(data,0,data.Length);
    newStream.Close();
      

  3.   


    HttpRequest 和  WebClient  都可以的
      

  4.   

     
    using System.Net;
    using System.IO;
     private string getHtml(string url) 
      { 
           try
                {
                    WebClient client = new WebClient();
                    Stream strm = client.OpenRead(url);
                    StreamReader reader = new StreamReader(strm, Encoding.Default);
                    string strline = "";
                    string html = "";
                    while ((strline = reader.ReadLine()) != null)
                    {
                       html+="\r\n"+strline;
                    }
                    return html;
                    strm.Close();
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
      } 
      

  5.   

    根据URL提取页面的Title,根据网页的charset自动判断Encodingusing System;
    using System.Net;
    using System.Text;
    using System.Text.RegularExpressions;class Program
    {
      // 获取网页的HTML内容,根据网页的charset自动判断Encoding
      static string GetHtml(string url)
      {
        return GetHtml(url, null);
      }  // 获取网页的HTML内容,指定Encoding
      static string GetHtml(string url, Encoding encoding)
      {
        byte[] buf = new WebClient().DownloadData(url);
        if (encoding != null) return encoding.GetString(buf);
        string html = Encoding.UTF8.GetString(buf);
        encoding = GetEncoding(html);
        if (encoding == null || encoding == Encoding.UTF8) return html;
        return encoding.GetString(buf);
      }  // 根据网页的HTML内容提取网页的Encoding
      static Encoding GetEncoding(string html)
      {
        string pattern = @"(?i)\bcharset=(?<charset>[-a-zA-Z_0-9]+)";
        string charset = Regex.Match(html, pattern).Groups["charset"].Value;
        try { return Encoding.GetEncoding(charset); }
        catch (ArgumentException) { return null; }
      }  // 根据网页的HTML内容提取网页的Title
      static string GetTitle(string html)
      {
        string pattern = @"(?si)<title(?:\s+(?:""[^""]*""|'[^']*'|[^""'>])*)?>(?<title>.*?)</title>";
        return Regex.Match(html, pattern).Groups["title"].Value.Trim();
      }  // 打印网页的Encoding和Title
      static void PrintEncodingAndTitle(string url)
      {
        string html = GetHtml(url);
        Console.WriteLine("[{0}] [{1}]", GetEncoding(html), GetTitle(html));
      }  // 程序入口
      static void Main()
      {
        PrintEncodingAndTitle("http://www.msdn.net/");
        PrintEncodingAndTitle("http://www.cnblogs.com/");
        PrintEncodingAndTitle("http://www.cnblogs.com/skyiv/");
        PrintEncodingAndTitle("http://www.csdn.net/");
        PrintEncodingAndTitle("http://news.163.com/");
      }
    }
    /**//* 程序输出:
    [] [MSDN: Microsoft Developer Network]
    [System.Text.UTF8Encoding] [博客园 - 程序员的网上家园]
    [System.Text.UTF8Encoding] [空间/IV - 博客园]
    [System.Text.UTF8Encoding] [CSDN.NET - 中国最大的IT技术社区,为IT专业技术人员提供最全面的信息传播和服务平台]
    [System.Text.DBCSCodePageEncoding] [新闻中心_网易新闻]
    */
      

  6.   

    用HttpWebResponse和HttpWebRequest就很容易实现了。