.NET HTTPReguest GetResponse()获得前N个字节

时间:2015-08-18 16:11:03

标签: c# .net http httprequest

我正在尝试创建一个网站抓取工具。它将从许多网站检索一些数据 有时如果我只加载网页的1000个第一个字节,我可以看到我在寻找什么 这是我的代码:

request = (HttpWebRequest)WebRequest.Create("http://example.com");
var response = (HttpWebResponse)request.GetResponse();

string responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();

当我调用request.GetResponse()时,它将加载整个页面(例如4000字节),但我正在寻找的数据是前1000个字节。当我调用ReadToEnd()时,它将从RAM读取所有接收到的数据。但整个数据从网站发送到我的电脑!我不想接收所有字节,我只需要第一个N字节。 如果我能做到这一点,我就可以节省许多互联网流量。 你能帮助我吗?我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

使用StreamReader.Read,例如

StreamReader sr = new StreamReader(response.GetResponseStream());
char[] c = new char[1000]; // 1000 bytes
sr.Read(c, 0, c.Length); 
string responseString  = new string(c);