从https url下载xml文件

时间:2016-07-26 12:45:57

标签: .net vb.net https webclient visual-studio-2003

我在从HTTPS网站下载文件时遇到问题,我正在使用vb。 我有这个代码,它很简单,但主要问题是它需要在Visual Studio 2003中。 这是代码

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Dim client As New WebClient
    ' Download string.
    client.DownloadFile("https://www.un.org/sc/suborg/sites/www.un.org.sc.suborg/files/consolidated.xml", "consolidated.xml")

End Sub

但是在我启动项目后,我收到一条消息告诉我:

  

其他信息:底层连接已关闭:无法为SSL / TLS建立安全通道。

有什么方法可以绕过这个安全通道吗? 谢谢

3 个答案:

答案 0 :(得分:0)

这就像你拥有它一样,该文件需要是一个完全限定的路径到一个文件,你必须有权写入它。

尝试创建临时文件,看看是否有效:

    'create a temp file
    Dim path = IO.Path.GetTempPath()
    Dim fileName = Guid.NewGuid().ToString() + ".xml"
    Dim fullyQualifiedPath = IO.Path.Combine(path, fileName)

    'download the file
    Using client As New WebClient
        client.DownloadFile("https://www.un.org/sc/suborg/sites/www.un.org.sc.suborg/files/consolidated.xml", fullyQualifiedPath)
    End Using

    'show the file so we can see what we downloaded
    Process.Start(fullyQualifiedPath)

请注意,您应该将WebClient包装在Using块中,因为这会释放对象

答案 1 :(得分:0)

我用这行代码解决了我的问题

System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls

如果有人需要:)

答案 2 :(得分:-2)

@马特·威尔科

这就是我通过使用https:

得到的

请求已中止:无法创建SSL / TLS安全通道。 在System.Net.WebClient.DownloadFile(Uri地址,字符串fileName) 在System.Net.WebClient.DownloadFile(字符串地址,字符串fileName)

使用http可以正常工作