HttpWebRequest、HttpWebResponse获取网页
1,通过HttpWebRequest、HttpWebResponse获取一个流
request = (HttpWebRequest)System.Net.WebRequest.Create(this._url);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream reciveStream = response.GetResponseStream();
2,读取流成字符串
方法1:利用Stream的Read方法
byte[] byteData = new byte[response.ContentLength];
int count = byteData.Length, offset = ;
while (count > )
{
int n = reciveStream.Read(byteData, offset, count);
if (n == )
{
break;
}
offset += n;
count -= n;
} string strHtml = System.Text.Encoding.GetEncoding("utf-8").GetString(byteData);
lstURL.Add(strHtml);
response.Close();
方法1中的response.ContentLength可能为-1(和服务器的压缩有关),造成数组初始化失败。
网上方法:添加 request.Headers.Set("Accept-Encoding", "identity"); 强制服务器不压缩,但是我测试的时候总是超时,所以该方法可靠性不定。
建议不要用方法1,用下面的方法2。
方法2:利用StreamReader
using (StreamReader reader = new StreamReader(reciveStream, System.Text.Encoding.UTF8))
{
string strHtml = reader.ReadToEnd(); lstURL.Add(strHtml);
}
response.Close();
注意点:
1,要关闭流。(选一个就可以了)
response.Close() 或 reciveStream.Close()
2,注意编码。
StreamReader默认使用utf-8。
不管是使用stream,还是streamReader,都建议根据具体网页内容,指定编码,不然会出现乱码。
HttpWebRequest、HttpWebResponse获取网页的更多相关文章
- asp.net 利用HttpWebRequest自动获取网页编码并获取网页源代码
/// <summary> /// 获取源代码 /// </summary> /// <param name="url"></param& ...
- C#获取网页内容 (WebClient、WebBrowser和HttpWebRequest/HttpWebResponse)
获取网页数据有很多种方式.在这里主要讲述通过WebClient.WebBrowser和HttpWebRequest/HttpWebResponse三种方式获取网页内容. 这里获取的是包括网页的所有信息 ...
- C#网页采集数据的几种方式(WebClient、WebBrowser和HttpWebRequest/HttpWebResponse)
一.通过WebClient获取网页内容 这是一种很简单的获取方式,当然,其它的获取方法也很简单.在这里首先要说明的是,如果为了实际项目的效率考虑,需要考虑在函数中分配一个内存区域.大概写法如下 //M ...
- C# HttpWebRequest 绝技 根据URL地址获取网页信息
如果要使用中间的方法的话,可以访问我的帮助类完全免费开源:C# HttpHelper,帮助类,真正的Httprequest请求时无视编码,无视证书,无视Cookie,网页抓取 1.第一招,根据URL地 ...
- c#利用HttpWebRequest获取网页源代码
c#利用HttpWebRequest获取网页源代码,搞了好几天终于解决了,直接获取网站编码进行数据读取,再也不用担心乱码了! 命名空间:Using System.Net private static ...
- 利用HttpWebRequest和HttpWebResponse获取Cookie并实现模拟登录
利用HttpWebRequest和HttpWebResponse获取Cookie并实现模拟登录 tring cookie = response.Headers.Get("Set-Cookie ...
- 黄聪:C#获取网页HTML内容的三种方式
C#通常有三种方法获取网页内容,使用WebClient.WebBrowser或者HttpWebRequest/HttpWebResponse. 方法一:使用WebClient static void ...
- C# 获取网页信息
获取网页源码 ///通过HttpWebResponse public string GetUrlHtml(string url) { string strHtml = string.Empty; Ht ...
- c#利用WebClient和WebRequest获取网页源代码的比较
前几天举例分析了用asp+xmlhttp获取网页源代码的方法,但c#中一般是可以利用WebClient类和WebRequest类获取网页源代码.下面分别说明这两种方法的实现. WebClient类获取 ...
随机推荐
- C#winform实现跑马灯
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- echarts 认知笔记
0.echarts.setOption的核心认知 请注意,它是合并对象,而不是替换对象. 举个简单的例子,如果你第一次setOption时在series中配置了10个对象. 那么你下一次你意图使用只有 ...
- U811.1接口EAI系列之一--通用把XML传送给EAI处理方法--PowerBuilder语言
1.前面配置参考:http://www.cnblogs.com/spring_wang/p/3393147.html 2.pb通用调EAI方法代码如下: //===================== ...
- Django form入门详解--1
form在django中的作用: 1.可以用于自动生成form的html 2.数据校验 3.与model一在一起使用.可以大的方便数据驱动型网站的开发 编程中有许多的东西是“不可描述”的.只有动手去 ...
- Oracle connect by 层级结构查询
公司组织架构表:organization 一.查询子级 select * from organizationstart with id='1'connect by prior id = parent_ ...
- CentOS编译安装vim
#删除系统自带的vim rpm -qa | grep vim rpm -e vim-X11-7.4.629-5.el6_8.1.x86_64 vim-filesystem-7.4.629-5.el6_ ...
- 常用的NodeJS模块
图片处理 1.Manipulate images 官网:http://github.com/aheckmann/gm ImageMagick和GraphicsMagick主要用于图片的创建.编辑.合成 ...
- android应用开发-从设计到实现 3-3 Sketch静态原型设计
Sketch静态原型设计 对于静态原型的设计,我们使用Sketch. 启动Sketch后,我们将看到相似例如以下的界面, 工具栏 它的顶部是工具栏, 能够通过菜单条View -> Customi ...
- FFmpeg编译: undefined reference to 'av_frame_alloc()'
今天使用CMake编译FFmpeg的时候,死活编不过,提示什么“undefined reference to 'av_frame_alloc()” 后来仔细查找,发现是头文件包含错误. 错误的代码: ...
- Chunk
Chunk是一系列语句,Lua执行的每一块语句,比如一个文件或者交互模式下的每一行都是一个Chunk. 每个语句结尾的分号(;)是可选的,但如果同一行有多个语句最好用:分开 a = 1 b = a ...