【问题标题】:C# webclient Downloads files with 0 bytesC# webclient 下载 0 字节的文件
【发布时间】:2019-06-16 21:41:41
【问题描述】:

我尝试使用 Webclient 从 URL 下载文件,但下载的文件无法打开且大小为 0 字节,

你能帮我找出问题所在

下面是我正在使用的代码:

using (WebClient client = new WebClient())
{
client.DownloadFile("https://anticipa-pre.crm4.dynamics.com/Activities/Attachment/download.aspx?AttachmentType=5&IsNotesTabAttachment=1&AttachmentId=dba4e278-2110-e911-8140-5065f38ada91&CRMWRPCToken=tzNg2xRKEemBV1Bl84vUEa8EEKjO6%2fTiao%2b9Wa9pQd%2f2CmDOgnckhoaIGqzrXSp6&CRMWRPCTokenTimeStamp=636838278955012633", 
                        @"C:\Users\ayousbai\DNIs\dni7.jpg");
}

【问题讨论】:

  • 要打开此链接,您需要进行身份验证。也许您需要添加一些凭据。
  • 之所以没有抛出异常是因为它返回“302 Found”,这是一种重定向方式。除非 WebClient 跟随重定向到登录页面或诸如此类的东西,否则您实际上会返回一个空结果(+ 标头说 302 found + 要转到的 url),这就是这些文件为空的原因。您必须正确处理身份验证和重定向。

标签: c# file download webclient


【解决方案1】:

使用 Fiddler 或您的浏览器来测试下载。然后您可能会看到错误响应或登录屏幕。

在 Firefox 中,我被重定向到:

login.microsoftonline.com

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-26
    • 2014-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-24
    • 2017-03-09
    • 2015-12-30
    相关资源
    最近更新 更多