社区
C#
帖子详情
Socket,HttpWebRequest,WebClient哪种方法下载网页的速度快
oboaixoaix
2007-06-30 03:32:28
Socket,HttpWebRequest,WebClient哪种方法下载网页的速度快
...全文
826
6
打赏
收藏
Socket,HttpWebRequest,WebClient哪种方法下载网页的速度快
Socket,HttpWebRequest,WebClient哪种方法下载网页的速度快
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
oboaixoaix
2007-07-01
打赏
举报
回复
kevery_net(負貳伍小時)可惜我已经结帖,不然分就给你了
kevery_net
2007-07-01
打赏
举报
回复
用:HttpWebRequest
再在提交前的HttpWebRequest对像中的头加入("Accept-Encoding", "gzip");
这样会更快.但返回的数据是已加密的.再在本地解密,就OK,且本地解密也是很快的嘛.
如:
//下载网页
private string GetData (string 要下载的网址, string 当前网址)
{
string text1 = "";
string name = "gb2312";
name = "Big5";
try
{
HttpWebRequest HWR = (HttpWebRequest) WebRequest.Create(要下载的网址);
HWR.Timeout = 20;
HWR.ReadWriteTimeout = 30;
HWR.UserAgent = "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Maxthon; .NET CLR 1.1.4322)";
HWR.Accept = "*/*";
HWR.KeepAlive = true;
HWR.Headers.Add("Accept-Language", "zh-cn,en-us;q=0.5");
HWR.Headers.Add("Accept-Encoding", "gzip, deflate");
HWR.Referer = 当前网址;
HWR.CookieContainer = New CookieContainer();
HttpWebResponse HWResp = (HttpWebResponse) HWR.GetResponse();
Stream stream1 = Gzip(HWResp);
StreamReader reader1 = new StreamReader(stream1, Encoding.GetEncoding(name));
text1 = reader1.ReadToEnd();
reader1.Close();
stream1.Close();
}
catch
{
text1="";
}
return text1;
}
//解密
private Stream Gzip (HttpWebResponse HWResp)
{
Stream stream1 = null;
if (HWResp.ContentEncoding == "gzip")
{
stream1 = new GZipInputStream(HWResp.GetResponseStream());
}
else
{
if (HWResp.ContentEncoding == "deflate")
{
stream1 = new InflaterInputStream(HWResp.GetResponseStream());
}
}
if (stream1 == null)
{
return HWResp.GetResponseStream();
}
MemoryStream stream2 = new MemoryStream();
int count = 0x800;
byte[] buffer = new byte[0x800];
goto A;
A:
count = stream1.Read(buffer, 0, count);
if (count > 0)
{
stream2.Write(buffer, 0, count);
goto A;
}
stream2.Seek((long) 0, SeekOrigin.Begin);
return stream2;
}
oboaixoaix
2007-07-01
打赏
举报
回复
找不到类型或命名空间"GZipInputStream"
oboaixoaix
2007-06-30
打赏
举报
回复
哪位大哥有这方面的经验,告知一二啊,我没时间一个个去试啊
oboaixoaix
2007-06-30
打赏
举报
回复
怎么这么肯定,有没有做过试验
zhqs1000
2007-06-30
打赏
举报
回复
HttpWebRequest
通过
Socket
进行Http/Https
网页
操作
转自:http://blog.csdn.net/rztyfx/article/details/6989715 此文章假设读者已经熟悉在.NET下通过
HttpWebRequest
/
WebClient
来操作
网页
, 但是由于学艺不精或经验不够丰富,仍有很多困惑和疑问? 那么下面就通过一系列演示来解决其中一些问题。 废话不多,先列举一些HTTP/HTTPS操作过程经常遇到的问题:
【转】C#多线程环境下调用
HttpWebRequest
并发连接限制 HttpClient是否有默认并发数限制? 在.Net 4.0之前,一直是依靠
HttpWebRequest
实现Htt
【转】C#多线程环境下调用
HttpWebRequest
并发连接限制 HttpClient是否有默认并发数限制? 在.Net 4.0之前,一直是依靠
HttpWebRequest
实现Http操作的。它默认有一个非常保守的同一站点下最大2并发数限制,导致默认情况下
HttpWebRequest
往往得不到理想的速度(估计这个策略郁闷了不少码农),必须修改App.config或Serv
【转】C#多线程环境下调用
HttpWebRequest
并发连接限制
HttpClient是否有默认并发数限制? 在.Net 4.0之前,一直是依靠
HttpWebRequest
实现Http操作的。它默认有一个非常保守的同一站点下最大2并发数限制,导致默认情况下
HttpWebRequest
往往得不到理想的速度(估计这个策略郁闷了不少码农),必须修改App.config或ServicePointManager.DefaultConnectionLimit的值。 MS...
通过
Socket
进行HttP/HTTPS
网页
操作
此文章假设读者已经熟悉在.NET下通过
HttpWebRequest
/
WebClient
来操作
网页
, 但是由于学艺不精或经验不够丰富,仍有很多困惑和疑问? 那么下面就通过一系列演示来解决其中一些问题。 废话不多,先列举一些HTTP/HTTPS操作过程经常遇到的问题: 1、HTTP协议头参数? 示例: 上图是浏览google时通过IE9.0
C#多线程环境下调用
HttpWebRequest
并发连接限制
HttpClient是否有默认并发数限制? 在.Net 4.0之前,一直是依靠
HttpWebRequest
实现Http操作的。它默认有一个非常保守的同一站点下最大2并发数限制,导致默认情况下
HttpWebRequest
往往得不到理想的速度(估计这个策略郁闷了不少码农),必须修改App.config或ServicePointManager.DefaultConnectionLimit的值。 MS
C#
110,561
社区成员
642,566
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章