代码之家  ›  专栏  ›  技术社区  ›  DucDigital

是否仍要重置WebClient?

  •  2
  • DucDigital  · 技术社区  · 15 年前

    我遇到了WebClient解析一些非常敏感的网页的问题。不知怎么的,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");
        }
    }
    
    1 回复  |  直到 15 年前
        1
  •  0
  •   SLaks    15 年前

    WebClient 不会在实例之间共享任何信息。
    你可能有不同的问题。

    例如,该站点可能会忽略频繁发生的请求。

    你应该让小提琴手来检查到底发生了什么。

    另外,尝试添加 Thread.Sleep(5000) 在循环中查看是否有任何更改。(小提琴手)