2017-02-27 37 views
0

完成下载我正在尝试使用简单的基本webclient说明下载文件,但该文件并未下载完成。如果我试图下载一个10MB/100MB的文件,它可以下载一个7kb的文件或一个空文件。我只是使用ProgressBar来显示下载进度。这是我正在使用的代码。无法使用DownloadFileAsync

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 
+0

您的代码可以反复适用于200MB文件。问题必须在其他地方......代理,权限,月相?对不起,没有线索。 – MrGadget

+0

我不知道这里没有什么错。我尝试了一个不同的PC代码。在另一台电脑上创建一个全新的项目,只有上面提到的代码。尝试使用旧版本的.NET Framework。还是行不通。只需下载文件的7kb然后完成。是否有其他替代方法来测试下载/上传速度? –

回答

0

最后,我通过this forum发现了一个解决方案。我只是给webclient添加了头文件,并且工作正常。这里是其他人参考的代码。

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

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