在使用HttpWebRequest建立http请求时,第一次连接的响应速度会很慢,而且还会出现请求超时的错误,这里大概有十几秒钟的等待时间,但是一旦第一次运行成功后,下面的请求页面速度就会很快了。
网上查找了下,发现和我遇到同样问题的网友也有很多。
网友小A说:
“第一次用HttpWebRequest请求连接非常慢,但是只要第一次连接getresponse或者getrequeststream()成功了,后面就很快。不过只要一重新拨号,就又要很长时间才能获取getresponse()或者是getrequeststream()。
求怎么样才能解决这个问题,即使第一次慢点,但是等后面网络重拨后,可以快速的链接上,获取响应。
用循环套用他 第一次的时候超级慢,然后后面跟着很快,但是只要断开网络连接后重新连接后第一次就又很慢了。求解~~~”
网友小B说:
“今天把我以前做的一个程序升级到了.NET 4.0的版本,里面有一段通过HttpWebRequest获取html的代码,第一次运行特别慢,后续运行就快了。在网上搜了一下,找到了原因:.NET4.0中的默认代理是开启的,使用默认代理时,只有等待超时后才会绕过代理,从而导致第一次连接特别慢。(不知道微软为什么要把这个打开)”
【问题所在】
.NET4.0或3.5中的默认代理是开启的,而我并没有设置!故只有等待超时后才会绕过代理,这就阻塞了.
【参考资料】
"It's not set at all in app.cong or machine.config. Hmm. If I'm reading the
MSDN docs right, the default for defaultProxy.enabled is TRUE if the element
isn't specified at all. That would be consistent with my observations.
"
http://msdn2.microsoft.com/en-us/library/kd3cf2ex(VS.80).aspx
【问题引申】(参考)
如果在其它版本的.NET环境中遇到类似问题,不妨尝试
WebClient.Proxy = null;
或
HttpWebRequest.Proxy = null;
加了上面这一句 HttpWebRequest.Proxy = null; 将其默认代理设置为空时,果然 HttpWebRequest在第一次运行时不慢了,响应速度恢复了正常。
星球重启云游戏官方正版 安卓版v1.2.42
下载派对之星国际服 (flash party)安卓版v2.0.15.160832
下载Gym Fighting健身房格斗 安卓版v1.17.2
下载健身房格斗游戏无限金币 安卓版v1.18.2
下载幻兽爱合成小米版 最新版v2.5.6
幻兽爱合成小米版是一款非常好玩的宠物合成类游戏,游戏中有着海
修仙世家模拟器游戏 最新版v1.0.0
修仙世家模拟器是一款玩法新颖的模拟经营放置类挂机修仙游戏,游
国王或失败内购版 最新版v0.28.4
国王或失败内购版是一款非常好玩的模拟经营类手游,玩家在游戏中
飞影铠甲召唤器模拟器 最新版v1.0
飞影铠甲召唤器模拟器是一款可以模拟铠甲勇士变身音效和动作效果
幸福甜点咖啡店无限金币版 去广告版v1.2.2
幸福甜点咖啡店中文内购版是游戏的破解版本,在该版本中为玩家提