【发布时间】:2014-08-14 23:22:10
【问题描述】:
我目前正在使用WebClient 打开一些网站,但一段时间后我开始收到Error 403 消息。
我假设这是因为我经常/快速地访问他们的服务器。我假设我需要做的就是在请求之间添加一个Thread.Sleep 时间范围。
由于我必须多次执行此操作,是否有关于如何处理节流问题而不必花费大量时间的建议?
例如,请求之间的 3 秒最终将花费我 3 小时来完成。
所以问题是,Thread.Sleep 真的是解决这个问题的正确方法吗?如果是,什么是合适的时间范围?
作为旁注,我也使用了HttpWebRequest 并遇到了同样的问题。我仍然在其他代码项目中使用它,并且从技术上讲,我希望将相同的解决方案(或接近它)用于使用 HttpWebRequest
【问题讨论】:
-
您是否按顺序运行您的请求?
-
@esskar 目前是的。
-
您是否考虑过交错您的请求,我的意思是:给定 k 个网站,您必须每 T 秒打开一次,您总是以相同的顺序打开它们,具体取决于每个“打开”操作需要多长时间这可能会给您一些请求之间的时间。是否足以避免您报告的错误是完全不同的问题。
-
您是否必须首先通过这些网站中的任何一个进行身份验证?
-
@AndreaScarcella 所以你的意思是做网站 1,然后是 2,然后是 3,然后是 4,然后是 5,然后是 1,然后是 2,等等。不管每个网站有多少项目?跨度>