我有一个WPF应用程序,我想下载一个文件。

我使用System.Net;和我有以下代码:

WebClient ww = new WebClient();
ww.DownloadFileAsync(
    new Uri("http://www.sinvise.net/tester/1.jpg"), 
    AppDomain.CurrentDomain.BaseDirectory + "\\1.jpg");

问题是,是,它不下载文件,它只是显示为0KB文件,而不是下载的,我不知道是什么问题,谁能帮助?

有帮助吗?

解决方案 3

找到了答案,我读到DownloadFile检查DNS第一个东西之前,如果我用一个IP地址就没有做检查,并立即生效。

感谢在这虽然大家的帮助。

其他提示

如何监听 DownloadFileCompleted 事件并检查 AsyncCompletedEventArgs.Error 财产事件转发到您的处理?

    public static void DownLoadFileInBackground(string address)
    {
        WebClient client = new WebClient();
        Uri uri = new Uri(address);
        client.DownloadFileCompleted += (sender,e)=>
                                        {
                                            //inspect e here:
                                            //e.Error
                                        };
        client.DownloadProgressChanged += (sender,e)=>
                                          {
                                              //e.ProgressPercentage
                                          };
        client.DownloadFileAsync(uri, "blabla");
    }

某些网站阻止不必须在请求某些报头的请求。 在特定的一个我在过去已经发现的是“用户代理”首部,尝试从一个浏览器请求复制的报头,并将其添加到你的Web客户端

WebClient.Headers.Add("User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0)");

我想补充一点,当你有同一个文件的现有的和未封闭的WebRequest的DownloadFileAsync方法(我不能DownloadFile说吧)无法正常工作。至少这是我的经验。它可以是它不是由框架或服务器允许的。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top