Skip to main content
 首页 » 编程设计

c#之无论如何要重置webclient

2024年01月13日30grandyang

我在使用 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 中)