http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 6164|回复: 7

[HttpHelper] 飞哥进来下,关于HttpHelper Post超时的问题

[复制链接]
发表于 2014-7-7 20:54:46 | 显示全部楼层 |阅读模式
50金钱
一直以来都发现有这么一个问题:
post一个不存在的页面,比如http://www.sufei.com ,或者http://localhost ,有时就会超时,有时不会,用HttpHelper 进行Post有这样的规律:
第1次进行POST的速度很快,第2次POST就会等到超时才结束,我进行了多次POST后发现规律是,第1,3,5,7,9......次Post,速度快(正常),但第2,4,6,8.....次Post很慢,要等到超时为止。


后来调试后发现问题出在HttpHelper写入数据的代码上request.GetRequestStream().Write(buffer, 0, buffer.Length);这句

之后自己用HttpWebRequest试了下,依然是同样的问题,(除了规律和上面的不一样)也是超时,请问这是什么问题,除了设置超时参数,有其他办法吗?



1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2014-7-8 08:23:51 | 显示全部楼层
request.GetRequestStream().Write(buffer, 0, buffer.Length); 你应该先能清楚这一步是干什么的,这是写入Post数据就是向服务器提交参数。这慢只有一种情况,就是连接不上网址,或者网站慢。
等到超时有两种,一种是网站直接告诉我们连接失败,另一种是网址所指向的Ip慢等到响应后才会结束,你说的这种规律你可以换个电脑,或者是换个地区IP试试,这种情况从理论上就是不通的。网址不存在并不表示他打不打网页。电信或者是网通运营商会劫持并转到自己的推广页面的。一般会这样做,你可以Ping一下就懂了。
回复

使用道具 举报

 楼主| 发表于 2014-7-18 21:48:10 | 显示全部楼层
站长苏飞 发表于 2014-7-8 08:23
request.GetRequestStream().Write(buffer, 0, buffer.Length); 你应该先能清楚这一步是干什么的,这是写入 ...

被一个网站封了IP或限制了访问, POST的时候request.GetRequestStream().Write要等待很长的时候才返回超时结果,为何设置了Timeout和ReadWriteTimeout两个属性还是无效,我设置为10秒,还是依旧要等几十秒甚至1分钟以上。你说的电信网通劫持页面也是301跳转之后的网页,能访问就不会超时呀
回复

使用道具 举报

发表于 2014-7-18 21:49:49 | 显示全部楼层
sandy1231 发表于 2014-7-18 21:48
被一个网站封了IP或限制了访问, POST的时候request.GetRequestStream().Write要等待很长的时候才返回超 ...

这个你提供个网址看看
回复

使用道具 举报

发表于 2014-7-18 21:50:19 | 显示全部楼层
sandy1231 发表于 2014-7-18 21:48
被一个网站封了IP或限制了访问, POST的时候request.GetRequestStream().Write要等待很长的时候才返回超 ...

这个你提供个网址看看
回复

使用道具 举报

 楼主| 发表于 2014-7-18 22:08:16 | 显示全部楼层
站长苏飞 发表于 2014-7-18 21:50
这个你提供个网址看看

cccc1111.png

比如POST这个地址吧,正常POST的话是没问题的,我开100多个线程同时去POST,几百次请求后,我的IP就在一段时间内被屏蔽了,我的IP访问不了他的网站,这时再去POST的话 就出现上面说的这种情况。

还有http://www.wa-ca.com  这个域名是有解析的,但服务器访问不了,也会出现上面说的这种情况

而且我这里上网电信联通没有劫持推广页面的

回复

使用道具 举报

发表于 2016-8-25 02:06:35 | 显示全部楼层
站长苏飞 发表于 2014-7-18 21:50
这个你提供个网址看看

看了几个帖子一说到这个问题你就不说话了。
我用了几年了,你框架确实有这个问题。
回复

使用道具 举报

发表于 2016-8-25 08:26:18 | 显示全部楼层
MeeSii 发表于 2016-8-25 02:06
看了几个帖子一说到这个问题你就不说话了。
我用了几年了,你框架确实有这个问题。

这个问题我在群里说过几次了吧。另外网站上也多少提过。再说了你发到我QQ上的说明已经说的很清楚了啊,作用域的问题。

timeout的作用域是控制与目标服务器建立连接的超时时间,也就是说,当我们和服务器能在规定的timeout时间内建立tcp连接,便不会异常,而后,页面数据的下载很慢的过程不在timeout的范围内。

如果要控制写入和读取时的超时时间应该是设置这个ReadWriteTimeout属性。不是几年了不说,而是已经说的很明白了。你自己都把说明发出来了,还需要我说吗?你说是吧。
关于timeout连接超时时间和ReadWriteTimeout读写超时时间的误解
http://www.sufeinet.com/thread-17632-1-1.html
(出处: 苏飞论坛)

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-4-19 23:01

© 2014-2021

快速回复 返回顶部 返回列表