Webclient downloadfileasync no funciona
-
21-09-2019 - |
Pregunta
Tengo una aplicación de WPF y quiero descargar un archivo.
Estoy usando System.Net; y tengo el siguiente código:
WebClient ww = new WebClient();
ww.DownloadFileAsync(
new Uri("http://www.sinvise.net/tester/1.jpg"),
AppDomain.CurrentDomain.BaseDirectory + "\\1.jpg");
El problema es, es que no se descarga el archivo, es simplemente aparecer como archivo 0kb y no la descarga, no sé cuál es el problema, la ayuda puede alguien?
Solución 3
Se han encontrado la respuesta, leí que los cheques DownloadFile el DNS primero antes de nada, si uso una dirección IP que no hace el cheque y funciona inmediatamente.
Gracias por everyones ayuda en esto, sin embargo.
Otros consejos
¿Qué hay de la escucha de la DownloadFileCompleted evento y el control de la AsyncCompletedEventArgs.Error la propiedad evento hacia delante a su manejador?
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");
}
Algunos sitios web de bloquear las solicitudes que no tienen ciertas cabeceras de la petición. En particular, uno que he encontrado en el pasado es la cabecera "User-Agent", intente copiar una cabecera de una petición del navegador y agregarlo a su cliente Web
WebClient.Headers.Add("User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0)");
Me gustaría añadir que el método DownloadFileAsync
(no puedo hablar por DownloadFile
) no funciona cuando se tiene un WebRequest existente y no cerrada para el mismo archivo. Al menos esa es mi experiencia. Puede ser que no está permitido por el marco o servidor.