在慢响应中杀死HttpWebRequest

时间:2011-07-16 00:08:16

标签: c# httpwebrequest

偶尔爬行时,我的回复非常慢。

连接速度不慢,因此超时不起作用。它的主机速度为3-4字节/秒。

如果超时需要超过10秒,是否有办法终止此请求?

2 个答案:

答案 0 :(得分:2)

您要做的是在自己的线程上启动爬网过程,该过程在指定时间后超时。查看HttpWebRequest类上的BeginGetResponse(),该类启动一个线程并在完成时调用指定的函数。您可以为此方法添加超时机制,如下页的“示例”部分所示:http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.begingetresponse(v=VS.71).aspx

抱歉,我没有任何代码可以显示如何完成此操作,但该页面上的示例似乎已完成。

答案 1 :(得分:0)

如果您的HttpWebRequest在一个线程中,您可以通过在线程本身上调用Abort来终止请求...我知道这可能是“过度杀伤”......也许其他人有更好的想法...