Frage

Ich habe eine WPF-Anwendung, und ich möchte eine Datei zum Download bereit.

Ich verwende System.Net; und ich habe den folgenden Code:

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

Das Problem ist, ist, dass es die Datei nicht herunterladen, es ist nur als 0kb Datei zeigt und nicht das Herunterladen, ich weiß nicht, was das Problem ist, kann jemand helfen?

War es hilfreich?

Lösung 3

Gefunden die Antwort, habe ich gelesen, dass Downloadfile überprüft die DNS zuerst, bevor Sie etwas, wenn ich eine IP-Adresse verwenden sie nicht die Kontrolle tut und sofort funktioniert.

Vielen Dank für jedermanns Hilfe auf dieser though.

Andere Tipps

Wie wäre es hört für die DownloadFileCompleted Ereignis und die Überprüfung der AsyncCompletedEventArgs.Error Eigenschaft der Ereignis vorwärts zu Ihrem Handler?

    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");
    }

Einige Websites blockieren Anforderungen, die in der Anforderung haben bestimmte Header nicht. Insbesondere eine i in der Vergangenheit gefunden habe, ist der „User-Agent“ Header, versuchen Sie einen Header von einer Browser-Anfrage zu kopieren und fügen Sie sich auf Ihr WebClient

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

Ich mag hinzufügen, dass die DownloadFileAsync Methode (ich spreche nicht für DownloadFile) funktioniert nicht, wenn Sie einen vorhandenen und nicht geschlossenen webrequest für die gleiche Datei. Das ist zumindest meine Erfahrung. Es kann sein, es nicht durch den Rahmen oder Server erlaubt ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top