C# Webclient下载文件异步不工作
我有一个WPF应用程序,我想下载一个文件 我正在使用System.Net;我有以下代码:C# Webclient下载文件异步不工作,c#,webclient,downloadfileasync,C#,Webclient,Downloadfileasync,我有一个WPF应用程序,我想下载一个文件 我正在使用System.Net;我有以下代码: WebClient ww = new WebClient(); ww.DownloadFileAsync( new Uri("http://www.sinvise.net/tester/1.jpg"), AppDomain.CurrentDomain.BaseDirectory + "\\1.jpg"); 问题是,它没有下载文件,只是显示为0kb文件,没有下载,我不知道问题出在哪里,有人
WebClient ww = new WebClient();
ww.DownloadFileAsync(
new Uri("http://www.sinvise.net/tester/1.jpg"),
AppDomain.CurrentDomain.BaseDirectory + "\\1.jpg");
问题是,它没有下载文件,只是显示为0kb文件,没有下载,我不知道问题出在哪里,有人能帮忙吗?如何监听事件并检查事件转发给处理程序的属性
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");
}
监听事件并检查事件转发给处理程序的属性如何
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");
}
有些网站阻止请求中没有特定标题的请求。 特别是我在过去发现的“用户代理”标题,请尝试从浏览器请求复制标题并将其添加到WebClient中
WebClient.Headers.Add("User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0)");
有些网站阻止请求中没有特定标题的请求。 特别是我在过去发现的“用户代理”标题,请尝试从浏览器请求复制标题并将其添加到WebClient中
WebClient.Headers.Add("User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0)");
找到答案后,我读到DownloadFile在做任何事情之前首先检查DNS,如果我使用IP地址,它不会进行检查,并立即工作
谢谢大家在这方面的帮助。找到了答案,我读到DownloadFile会先检查DNS,如果我使用IP地址,它不会进行检查并立即工作
不过,感谢大家在这方面的帮助。我想补充一点,
DownloadFileAsync
方法(我不能代表DownloadFile
)在您对同一文件有一个现有的未关闭的webrequest时不起作用。至少这是我的经验。这可能是框架或服务器不允许的。我想补充一点,当您对同一个文件有一个现有且未关闭的webrequest时,DownloadFileAsync
方法(我不能代表DownloadFile
)不起作用。至少这是我的经验。它可能是框架或服务器不允许的。我认为www是一个输入错误。如果没有,马上就有问题了。我试着在我的机器上运行下载,它下载得很好(没有任何额外的头或任何特殊的东西)。检查您是否没有防火墙或类似的东西阻止传输。很好的图片顺便说一下:-)编辑:这是我的av,很傻,它甚至没有提示我!我认为www是一个拼写错误。如果没有,马上就有问题了。我试着在我的机器上运行下载,它下载得很好(没有任何额外的头或任何特殊的东西)。检查您是否没有防火墙或类似的东西阻止传输。很好的图片顺便说一下:-)编辑:这是我的av,很傻,它甚至没有提示我!我尝试了一下,使用e.error检查任何输出,并将progresspercentage输出到进度条,然后使用messagebox再次尝试,但没有输出,两个事件均未启动。我发现添加这两个事件可以清除间歇性问题-这很奇怪,因为这是我唯一需要添加事件以确保可靠写入文件的时间之一。我尝试了一下,并使用e.error检查任何输出,将progresspercentage输出到进度条,然后使用messagebox重试,但没有输出,两个事件都没有启动。我发现添加两个事件可以解决间歇性问题-这很奇怪,因为这是我唯一需要添加事件以确保可靠写入文件的时间之一。希望这样做有效,但没有,仍然没有下载文件。希望这样做有效,但没有,但它仍然没有下载文件。