Domanda

Ho un'applicazione WPF e voglio scaricare un file.

sto usando System.Net; e io ho il seguente codice:

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

Il problema è, è che esso non scaricare il file, è solo mostrando come file di 0kb e non scaricare, non so quale sia il problema, chiunque può aiutare?

È stato utile?

Soluzione 3

Trovato la risposta, ho letto che DownloadFile controlla il DNS prima di qualsiasi cosa, se uso un indirizzo IP non fa il controllo e funziona immediatamente.

Grazie per tutti quanti aiutano su questo però.

Altri suggerimenti

Che ne dici di ascoltare per la DownloadFileCompleted evento e controllando il AsyncCompletedEventArgs.Error proprietà avanti dell'evento al gestore?

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

Alcuni siti web bloccare le richieste che non hanno alcune intestazioni nella richiesta. In particolare quella che ho trovato in passato è il "User-Agent" header, provare a copiare un colpo di testa da una richiesta del browser e aggiungerlo nella vostra WebClient

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

Vorrei aggiungere che il metodo DownloadFileAsync (non posso parlare per DownloadFile) non funziona quando si dispone di un WebRequest esistente e non chiusa per lo stesso file. Almeno questa è la mia esperienza. Può essere che non è consentito dal quadro o server.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top