首页 文章

当我在webclient.ResponseHeaders之后使用webclient.DownloadFile时,我得到WebException超时

提问于
浏览
0

我正在尝试创建自己的下载管理器 . 当链接添加到下载管理器时,我使用webclient从服务器获取它的信息 . 像这样

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,因为有些链接上没有文件名 . 我甚至尝试使用不同的webclient下载并获取它的信息,但我得到了相同的结果 .

1 回答

  • 0

    我能够通过找到获取文件信息的另一种方法来解决问题 .

    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();
    

相关问题