سؤال

I am trying to create my own download manger. When a link is added to the download manger I use a webclient to get it's information from the server. Like so

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

After that I download the file using DownloadFile

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

When I do it like this. I get a WebException timeout. However, when I remove the webClient.ResponseHeaders part. It never get the timeout exception. I really need to read the Content-Disposition because some of the links don't have the name of the file on them. I even tried using a different webclient for downloading and getting it's info but I got the same result.

هل كانت مفيدة؟

المحلول

I was able to fix the problem by finding another way to get the files info.

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();
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top