我在从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建立安全通道。
有什么方法可以绕过这个安全通道吗? 谢谢
答案 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可以正常工作