您的位置:首页 > 理论基础 > 计算机网络

C# 读取网页源码的三种办法WebClient、WebRequest、HttpWebRequest

2015-12-29 11:58 633 查看
直接看这三种办法的源码吧,
using System;
using System.IO;
using System.Net;

namespace ReadHtml{
class ReadHtml{
static void Main(){
System.Console.WriteLine("准备更新数据");
string url = "http://www.jiuwola.com/";
//string html = new ReadHtml().GetHtmlByWebClient(url);
//string html = new ReadHtml().GetHtmlByWebRequest(url);
string html = new ReadHtml().GetHtmlByHttpWebRequest(url);
System.Console.WriteLine(html);
}

//第一种
private string GetHtmlByWebClient(string url){
string html = "";
WebClient wc = new WebClient();
Stream s = wc.OpenRead(url);
StreamReader sr = new StreamReader(s,System.Text.Encoding.GetEncoding("utf-8"));
html = sr.ReadToEnd();
s.Close();
return html;
}

//第二种
private string GetHtmlByWebRequest(string url){
Uri uri = new Uri(url);
WebRequest request = WebRequest.Create(uri);
WebResponse response = request.GetResponse();
Stream s = response.GetResponseStream();
StreamReader sr = new StreamReader(s,System.Text.Encoding.GetEncoding("utf-8"));
string html = sr.ReadToEnd();
s.Close();
response.Close();
return html;
}

//第三种  建议使用这一种办法
private string GetHtmlByHttpWebRequest(string url){
Uri uri = new Uri(url);
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);
request.UserAgent = "User-Agent:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705";
request.Accept = "*/*";
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream s = response.GetResponseStream();
StreamReader sr = new StreamReader(s,System.Text.Encoding.GetEncoding("utf-8"));
string html = sr.ReadToEnd();
s.Close();
response.Close();
return html;
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: