Nick_Ngai 2014-12-29 11:41 采纳率: 25%
浏览 2000

WebClient.DownloadData失败?

catch报An exception occurred during a WebClient request.错误
代码如下:
string url=http://act.lexun.com/ztapp/Templates/release/cc1d2175_3506_44b2_be7a_b0add0bb5f5f.zip
byte[] buffer = new WebClient { Credentials = CredentialCache.DefaultCredentials }.DownloadData(url);
这里直接跳到异常。
zip压缩包只有2M大小。

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-03 05:21
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    在.NET中,WebClient类的DownloadData方法会尝试从指定URL下载数据,并将其存储在一个缓冲区中。如果出现任何问题(包括网络连接问题、文件不存在等),都会抛出一个WebException异常。

    如果你遇到 An exception occurred during a WebClient request 的错误,可能是以下几种情况之一:

    1. 网络问题:你的电脑可能无法访问目标网站或服务器。
    2. 文件路径错误:检查你的文件路径是否正确无误。
    3. 文件不存在:目标文件可能不存在。
    4. 文件已损坏:目标文件可能已被损坏或被删除。
    5. 文件过大:目标文件可能太大,导致下载速度过慢或超时。

    解决这些问题的方法取决于具体的原因。你可以尝试以下一些解决方案来解决问题:

    • 检查网络连接是否正常。
    • 确保文件路径是正确的。
    • 确保目标文件存在且未损坏。
    • 尝试使用其他方法下载文件,例如使用System.IO.FileStream读取文件内容。
    • 如果是大文件,请考虑使用更快速的下载方法,例如使用多线程或多进程下载。

    以下是完整的代码示例:

    using System;
    using System.IO;
    using System.Net;
    
    class Program
    {
        static void Main()
        {
            string url = "http://act.lexun.com/ztapp/Templates/release/cc1d2175_3506_44b2_be7a_b0add0bb5f5f.zip";
            
            try
            {
                using (var webClient = new WebClient())
                {
                    byte[] buffer = webClient.DownloadData(url);
                    
                    // 使用缓冲区中的数据做些事情...
                }
            }
            catch (WebException ex)
            {
                Console.WriteLine($"Error: {ex.Message}");
            }
        }
    }
    

    在这个例子中,我们首先创建了一个新的WebClient实例,然后调用它的DownloadData方法。如果发生错误,WebException会被捕获并打印出来。

    评论

报告相同问题?