我在使用 webclient 解析一些非常敏感的网页时遇到问题。不知何故,webclient 无法执行某些任务,我什至不知道为什么,没有异常,没有错误,只是简单地无法工作(这不是站点的问题)
我在循环中运行 webclient,但是,只有第一个请求成功,接下来的所有请求都失败了。当我重新启动应用程序时,出现相同的结果,第一个请求总是成功,而所有其他请求都失败。
我确定所有 webclient 都已正确处理,但我不知道是什么问题,webclient 是否在处理后保存信息?
请指导我如何清除所有内容、重置所有内容并启动全新的网络客户端。
for (int i = 1; i <= Count; i++)
{
using (WebClient wc = new WebClient())
{
wc.Headers["Accept-Encoding"] = "gzip";
wc.Headers["User-Agent"] = "Mozilla/4.0 (Compatible; Windows NT 5.1; MSIE 6.0) (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)";
byte[] arr = wc.DownloadData(url);
if (arr.Length > 0)
Console.WriteLine(i.ToString() + ": SUCCESS");
else
Console.WriteLine(i.ToString() + ": FAILED");
}
}
请您参考如下方法:
WebClient 不会在实例之间共享任何信息。
您可能遇到了不同的问题。
例如,网站可能会忽略发生过于频繁的请求。
您应该运行 Fiddler 并检查到底发生了什么。
此外,尝试在循环中添加 Thread.Sleep(5000) 并查看是否有任何变化。 (在 fiddler 中)
