webclient 比浏览器加载页面慢的一个问题

测试中发现webclient 比浏览器加载页面慢的一个问题;原因WebClient 支持 gzip, deflate,但是未设置

解决方案:

class WebClientEx : WebClient

{

int timeout = 60;

public WebClientEx(int timeout = 60)

{

this.timeout = timeout * 1000;

this.Encoding = Encoding.UTF8;

}

protected override WebRequest GetWebRequest(Uri address)

{

HttpWebRequest request = (HttpWebRequest)base.GetWebRequest(address);

request.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;

request.Timeout = timeout;

request.ReadWriteTimeout = timeout;

return request;

}

}

另HttpClient中加入支持gzip\deflate:

var handler = new HttpClientHandler() { AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate };

var httpClient = new HttpClient(handler);

时间: 2024-10-10 22:24:40

webclient 比浏览器加载页面慢的一个问题的相关文章

在C++ Builder中打开浏览器加载页面

今天在开发项目的时候,要求实现根据数据查询出来的一个IP地址,并返回到前台使用浏览器打开.这个东东本身很简单哈.在C++ Builder 中有对应的API函数,下面我们一起来讲讲: 调用外部命令 如果用默认浏览器,就调用ShellExecute(NULL, _T("open"), _T("explorer.exe"), _T("http://www.baidu.com"), NULL, SW_SHOW); 如果用IE打开,就调用ShellExec

浏览器加载显示html页面内容的顺序

我们经常看到浏览器在加载某个页面时,部分内容先显示出来,又有些内容后显示.那么浏览器加载显示html究竟是按什么顺序进行的呢 其实浏览器加载显示html的顺序是按下面的顺序进行的:1.IE下载的顺序是从上到下,渲染的顺序也是从上到下,下载和渲染是同时进行的.2.在渲染到页面的某一部分时,其上面的所有部分都已经下载完成(并不是说所有相关联的元素都已经下载完).3.如果遇到语义解释性的标签嵌入文件(JS脚本,CSS样式),那么此时IE的下载过程会启用单独连接进行下载.4.并且在下载后进行解析,解析过

屏蔽电信流氓广告造成的诡异的问题--Android WebView 长时间不能加载页面

发现在家里的时候用Android App里的WebView打开网站很慢,会有十几秒甚至更长时间的卡住. 但是在电脑上打开同样的网页却很快. 查找这个问题的过程比较曲折,记录下来. 抓取Android网络数据 为了调试这个问题,首先要抓取Android的网络包数据.开始时,是想用Wireshark来抓包的,但是很麻烦,tcpdump在手机要root权限. 于是转换思路,能不能在Android上设置代理,来抓包? 但是fiddler没有linux版本,于是转用BurpSuite了. 设置Androi

浏览器加载、解析、渲染的过程

最近在学习性能优化,学习了雅虎军规 ,可是觉着有点云里雾里的,因为里面有些东西虽然自己也一直在使用,但是感觉不太明白所以然,比如减少DNS查询,css和js文件的顺序.所以就花了时间去了解浏览器的工作,有一篇经典的文章<how browsers work> ,讲的很详细,也有中文译本 .不过就是文章有点太长,也讲了一堆东西,还是自己总结一下. 为什么要了解浏览器加载.解析.渲染这个过程? 好,我们先说一下,为什么要了解这些呢?如果想写出一个最佳实践的页面,就要好好了解. 了解浏览器如何进行加载

浏览器加载和渲染html的顺序

浏览器加载和渲染html的顺序 1. IE下载的顺序是从上到下,渲染的顺序也是从上到下,下载和渲染是同时进行的. 2. 在渲染到页面的某一部分时,其上面的所有部分都已经下载完成(并不是说所有相关联的元素都已经下载完). 3. 如果遇到语义解释性的标签嵌入文件(JS脚本,CSS样式),那么此时IE的下载过程会启用单独连接进行下载. 4. 样式表在下载完成后,将和以前下载的所有样式表一起进行解析,解析完成后,将对此前所有元素(含以前已经渲染的)重新进行渲染. 5. JS.CSS中如有重定义,后定义函

css基础篇(一)——浏览器加载和渲染网页

1.介绍 虽然这篇是css笔记,但是做为web开发,天天和浏览器打交道,有必要先理理我目前了解的浏览器加载和渲染页面的过程. 2.页面加载和渲染流程 如图:(该篇重点是css,所以该图重点说明css渲染) 1.重建DOM树:渲染引擎开始解析html文档,转换树中的标签到DOM节点 2.构建渲染树:解析css,根据css选择器找到节点的样式,创建另外一个树———渲染树 3.布局渲染树:从根节点开始,计算出每一个元素的大小和位置 4.绘制渲染树:遍历渲染树将每个节点都绘制出来 整个流程简易描述:用户

在meta标签添加代码实现每次请求都要求重新加载页面而不是读取缓存

<!-- 禁止浏览器从本地缓存中调阅页面.--> <meta http-equiv="pragram" content="no-cache"> <!--网页不保存在缓存中,每次访问都刷新页面.--> <meta http-equiv="cache-control" content="no-cache, must-revalidate"> <!--同上面意思差不多,必须重新加

浏览器加载渲染网页过程解析 (转)

浏览器的工作机制,一句话概括起来就是:web浏览器与web服务器之间通过HTTP协议进行通信的过程.所以,C/S之间握手的协议就是HTTP协议.浏览器接收完毕开始渲染之前大致过程如下: 从浏览器地址栏的请求链接开始,浏览器通过DNS解析查到域名映射的IP地址,成功之后浏览器端向此IP地址取得连接,成功连接之后,浏览器端将请 求头信息 通过HTTP协议向此IP地址所在服务器发起请求,服务器接受到请求之后等待处理,最后向浏览器端发回响应,此时在HTTP协议下,浏览器从服务器接收到 text/html

jquery加载页面的方法(页面加载完成就执行)

jquery加载页面的方法(页面加载完成就执行) jquery加载页面的方法(页面加载完成就执行),建议大家看下windows.onload与$(document).ready之间的区别. 1.$(function(){  $("#a").click(function(){  //adding your code here  }); }); 2.$(document).ready(function(){  $("#a").click(function(){  //a