Использую DownloadFileAsync , но скачивается пустой файл

Подскажите, пожалуйста. С адреса https://physics.nist.gov/cuu/Constants/Table/allascii.txt скачивается пустой файл. С других адресов качаю без проблем.

Использую стандартный код на C#

using (WebClient wc = new WebClient())
{              
wc.DownloadProgressChanged += wc_DownloadProgressChanged;
wc.DownloadFileAsync(              
new Uri("https://physics.nist.gov/cuu/Constants/Table/allascii.txt"),
@"C:\Users\User\Desktop\arhiv\fc1.html" );
 //while (wc.IsBusy) { }
}

Ответы (1 шт):

Автор решения: aepot

Вы уничтожаете WebClient с помощью using до того как страница будет загружена. Поэтому и пусто.

Но если очень надо, то можно попробовать вот так:

WebClient wc = new WebClient();
wc.DownloadProgressChanged += wc_DownloadProgressChanged;
wc.DownloadDataCompleted += (s, e) => wc.Dispose();
wc.DownloadFileAsync(url, path);

Но вообще WebClient устарел, используйте HttpClient.

private static readonly HttpClient client = new HttpClient();

static async Task Main(string[] args)
{
    string text = await client.GetStringAsync("https://physics.nist.gov/cuu/Constants/Table/allascii.txt");
    File.WriteAllText("file.txt", text);
    Console.ReadKey();
}

Вывод в файл file.txt, начальные несколько строк:

             Fundamental Physical Constants --- Complete Listing
             2018 CODATA adjustment


  From:  http://physics.nist.gov/constants



  Quantity                                                       Value                 Uncertainty           Unit
-----------------------------------------------------------------------------------------------------------------------------
alpha particle-electron mass ratio                          7294.299 541 42          0.000 000 24             
alpha particle mass                                         6.644 657 3357 e-27      0.000 000 0020 e-27      kg
alpha particle mass energy equivalent                       5.971 920 1914 e-10      0.000 000 0018 e-10      J

Вообще файл весит 40 килобайт, смысла отображать прогресс загрузки не вижу. Если же вам надо качать огромные файлы в несколько гигабайт, то докачка в случае разрыва соединения тоже бы не помешала - вот пример.

→ Ссылка