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; } } }
相关文章推荐
- JS 判断URL中是否含有 http:// 如果没有则自动为URL加上
- post上传视频文件到服务端
- 承载网络开启后显示无法连接到Internet,已解决
- WIN8 启用虚拟AP 以共享网络,使手机电脑一起网上冲浪
- Android使用ImageView显示网络图片
- Android中使用HttpClient实现HTTP通信效果
- Android网络通信Volley框架源代码浅析(三)
- (小笔记)popupwindow中listview加载的网络数据有时显示有时不显示
- http用法
- Sheepdog HTTP API
- java 实现 http 文件下载
- App Transport Security has blocked a cleartext HTTP (http://)错误处理
- c# tcp备忘及networkstream.length此流不支持查找解决
- sar分析网卡流量
- .NET - http://referencesource.microsoft.com/
- 通过/proc/net/dev和/proc/net/snmp分析网络包量|流量|错包|丢包以及各网络协议的工作状况
- NopCmmerce的FakeHttpContext类
- HTTP 错误 500.21 - Internal Server Error处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“ManagedPipel
- 计算机网络——物理层
- maven jetty https配置