C# 网络客户端下载问题

C# 网络客户端下载问题,c#,.net,webclient,C#,.net,Webclient,如果这个问题以前讨论过,很抱歉再次询问 我想使用System.Net.WebClient类从url下载图像 当我试图下载一个图像(例如谷歌徽标)时,它没有出现任何错误,但有些图像出现了错误。我不明白为什么会出现这种错误 我如何解决这个问题 我的代码是: WebClient client = new WebClient(); try { //Downloads the file from the given url to the given destination

如果这个问题以前讨论过,很抱歉再次询问

我想使用System.Net.WebClient类从url下载图像

当我试图下载一个图像(例如谷歌徽标)时,它没有出现任何错误,但有些图像出现了错误。我不明白为什么会出现这种错误

我如何解决这个问题

我的代码是:

WebClient client = new WebClient();
    try
    {
        //Downloads the file from the given url to the given destination                                         
        client.DownloadFile(urltxt.Text, filetxt.Text);
        return true;
    }
    catch (WebException w)
    {
        MessageBox.Show(w.ToString());
        return false;
    }
    catch (System.Security.SecurityException)
    {
        MessageBox.Show("securityexeption");
        return false;
    }
    catch (Exception)
    {
        MessageBox.Show("exception");
        return false;
    }
错误包括:

System.Net.WebException:基础连接已关闭:接收器上发生意外错误。-->System.IO.IOException:无法从传输连接读取数据:现有连接已被远程主机强制关闭。-->System.Net.Sockets.SocketException:现有连接已被远程主机强制关闭…bla布拉


谢谢您的帮助。

您必须启动类似Fiddler的程序来查看传输层发生了什么,但在我看来,可能是您对它们的攻击太多了,而服务器已经中断了您一段时间(是的:如果您通过脚本攻击它们,许多站点都会这样做)

特别是,既然你提到谷歌:请看(重点是我的):

5.3您同意不通过谷歌提供的接口以外的任何方式访问(或试图访问)任何服务,除非您在与谷歌的单独协议中明确允许这样做您明确同意不通过任何自动方式(包括使用脚本或网络爬虫)访问(或尝试访问)任何服务,并应确保您遵守服务上任何robots.txt文件中规定的说明


站点基于referer http标头阻止对图像的访问也是很常见的,以阻止在站点中跨站点嵌入其图像。

出现此错误的原因可能与网络相关,或者客户端计算机无法访问远程图像(网络问题、防火墙等),并且与.NET无关,网络客户端或编程。如果您试图从同一IP发送多个请求,远程站点也可能会限制访问