如何使用HttpWebRequest和身份验证下载文件

时间:2009-08-12 07:03:56

标签: c# authentication httpwebrequest download

经过身份验证的网站下载失败。我尝试过传递网络凭据并允许自动重定向,但这不起作用。

该应用程序适用于允许通过身份验证下载的URL。但我的应用程序必须从需要身份验证的站点下载组件。因此,在浏览器中,下载URL重定向到授权窗口,然后使用dirct文件下载链接重定向回原始域,然后打开浏览器download-savefile-dialog。 但在我的应用程序中,如果将凭据发送到原始下载页面,它不会抛出任何异常或说认证工作与否,而是下载一些随机的小文件说约0.05MB(我试图下载的文件至少是50MB +)

有谁知道我做错了什么?或者我怎样才能看到我的代码执行时发生了什么?

 private HttpWebRequest hRequest;

 private HttpWebResponse hResponse;

NetworkCredential myCred = new NetworkCredential("username@some.com", "123random");

        CredentialCache myCache = new CredentialCache();

        myCache.Add(new Uri("domain"), "Basic", myCred);


hRequest = (HttpWebRequest)WebRequest.Create(tbURL.Text);

            hRequest.Credentials = myCache;

            hRequest.AllowAutoRedirect = true;


            //hRequest.Credentials = CredentialCache.DefaultCredentials;

            hResponse = (HttpWebResponse)hRequest.GetResponse();

1 个答案:

答案 0 :(得分:1)

使用Fiddler或HttpAnalyzer查看使用浏览器下载文件时实际发生的情况。服务器可能需要某个引用者或某些特殊cookie。