Я получаю тайм-аут WebException, когда использую webclient.DownloadFile после webclient.ResponseHeaders

Я пытаюсь создать свой собственный менеджер загрузок. Когда ссылка добавляется в менеджер загрузок, я использую веб-клиент для получения информации с сервера. Вот так

WebClient webClient = new WebClient();
webClient.OpenRead(link);
string filename = webClient.ResponseHeaders["Content-Disposition"];

После этого я загружаю файл с помощью DownloadFile

FileInfo fileInfo = new FileInfo(path);
if (!fileInfo.Exists)
{
    webClient.DownloadFile(link, path);
}

Когда я делаю это так. Я получаю тайм-аут WebException. Однако, когда я удаляю часть webClient.ResponseHeaders. Он никогда не получает исключение тайм-аута. Мне действительно нужно прочитать Content-Disposition, потому что на некоторых ссылках нет имени файла. Я даже пытался использовать другой веб-клиент для загрузки и получения информации, но получил тот же результат.


person MarwanMR1    schedule 17.09.2013    source источник


Ответы (1)


Я смог решить проблему, найдя другой способ получить информацию о файлах.

string Name = "";
HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create(Link);
HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();

for(int i=0; i < myHttpWebResponse.Headers.Count; i++)
{
    if (myHttpWebResponse.Headers.Keys[i] == "Content-Disposition")
    {
        Name = myHttpWebResponse.Headers[i];
    }
}
myHttpWebResponse.Close();
person MarwanMR1    schedule 18.09.2013