在响应缓慢时终止HttpWebRequest

本文关键字:终止 HttpWebRequest 缓慢 响应 | 更新日期: 2023-09-27 18:02:29

偶尔在爬行时,我得到一个非常慢的响应。

连接速度不慢,所以超时不起作用。它的主机速度达到3-4字节/秒。

是否有办法杀死这个请求,如果它需要超过10秒,如超时?

在响应缓慢时终止HttpWebRequest

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

对不起,我手边没有任何代码来展示这是如何完成的,但是该页上的示例看起来是完整的。

如果你的HttpWebRequest在一个线程中,你应该能够通过调用线程本身的Abort来杀死请求…我知道这可能是"矫枉过正"……也许别人有更好的主意…