【问题标题】:How to download a file using HttpWebRequest and authentication如何使用 HttpWebRequest 和身份验证下载文件
【发布时间】:2009-08-12 07:03:56
【问题描述】:

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

该应用程序适用于允许通过身份验证下载的 URL。但是我的应用程序必须从需要身份验证的站点下载组件。所以在浏览器中..下载 url 重定向到授权窗口,然后使用 dirct 文件下载链接重定向回原始域,然后浏览器下载-保存文件-对话框打开。 但是在我的应用程序中,如果将凭据发送到原始下载页面,它不会抛出任何异常或说身份验证是否有效,而是会下载一些随机的小文件,比如大约 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();

【问题讨论】:

  • 需要更多信息;这可能取决于服务器配置。下载的文件中有什么?并且按照 zowat 的建议使用 Fiddler - 它是一个很棒的本地 http 代理,可以让您看到所有来回的流量,包括日志记录等。

标签: c# authentication httpwebrequest download


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多