views:

312

answers:

3

I got a WPF application and I want to download a file.

I'm using System.Net; and I have the following code:

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

The problem is, is that it doesn't download the file, it's just showing up as 0kb file and not downloading, I don't know what the problem is, can anyone help?

+1  A: 

How about listening for the DownloadFileCompleted event and checking the AsyncCompletedEventArgs.Error property the event forwards to your 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");
    }
spender
I gave it a try and used e.error to check for any output and output the progresspercentage to a progress bar and tried again with a messagebox but there was no output, neither event started.
Sandeep Bansal
+1  A: 

Some websites block requests that dont have certain headers in the request. In particular one i have found in the past is the "User-Agent" header, try copying a header from a browser request and add it into your WebClient

WebClient.Headers.Add("User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0)");
Lightweight
Wished that worked but nope, still it's not downloading the file.
Sandeep Bansal
A: 

Found the answer, I read that DownloadFile checks the DNS first before anything, if I use an IP address it doesn't do the check and immediately works.

Thanks for everyones help on this though.

Sandeep Bansal