【问题标题】:Unable to complete download using DownloadFileAsync无法使用 DownloadFileAsync 完成下载
【发布时间】:2017-02-27 12:08:01
【问题描述】:

我正在尝试使用简单的基本 Web 客户端指令下载文件,但文件未完成下载。如果我尝试下载 10mb/100mb 文件,它会下载 7kb 文件或空文件。我只是使用 ProgressBar 来显示下载进度。这是我正在使用的代码。

Imports System.Net

Public Class Form1

    Dim WithEvents wc As New WebClient

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        wc.DownloadFileAsync(New Uri("http://cachefly.cachefly.net/100mb.test"), "100mb.test")
End Sub

Private Sub wc_DownloadFileCompleted(sender As Object, e As System.ComponentModel.AsyncCompletedEventArgs) Handles wc.DownloadFileCompleted
    ProgressBar1.Visible = False
    ProgressBar1.Value = 0
End Sub

Private Sub wc_DownloadProgressChanged(sender As Object, e As DownloadProgressChangedEventArgs) Handles wc.DownloadProgressChanged
    ProgressBar1.Visible = True
    ProgressBar1.Value = e.ProgressPercentage
End Sub

End Class

【问题讨论】:

  • 您的代码对我来说可以重复使用 200MB 文件。问题一定出在其他地方……代理、权限、月相?抱歉,没有线索。
  • 我不确定这里有什么问题。我在不同的 PC 上尝试了代码。在另一台 PC 上创建了一个只有上述代码的全新项目。尝试使用旧版本的 .NET Framework。还是行不通。只需下载 7kb 的文件,然后完成。还有其他测试下载/上传速度的替代方法吗?

标签: vb.net webclient system.net downloadfileasync


【解决方案1】:

最后,我通过this forum 找到了解决方案。我刚刚向 webclient 添加了标题,它工作正常。这是供其他人参考的代码。

wc.Headers.Add("User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0)")

在调用 DownloadFileAsync 函数之前添加它。

【讨论】:

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