问题描述
我已经在这尝试了几个小时。我正在将此代码从 Access 2010 项目移植到 vb.net 我不知道这里会出现什么问题。
Visual Studio 2019,框架 4.7.2
Dim data As Byte() = Encoding.UTF8.GetBytes(strBody)
url = "https://rest.avatax.com/api/v2/companies/" & OE2019HomeForm.strAvalaraCompany & "/certificates/"
Dim uri As Uri = New Uri(url)
Dim request As System.Net.WebRequest = System.Net.WebRequest.Create(uri)
request.Method = "Post"
request.Headers.Add("40","Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0)")
request.Headers.Add("Authorization","Basic " & OE2019HomeForm.strAuth)
request.Headers.Add("Cache-Control","no-cache")
request.Headers.Add("20","application/json") 'this is the accept header
request.Headers.Add("12","text/plain") ' content type
request.ContentLength = data.Length
Dim stream As Stream = request.GetRequestStream()
stream.Write(data,data.Length)
stream.Close()
Using response As WebResponse = request.GetResponse()
Using responsestream As Stream = response.GetResponseStream()
Using reader As StreamReader = New StreamReader(responsestream)
Dim webresponse As String
webresponse = reader.ReadToEnd()
MsgBox(webresponse)
End Using
End Using
End Using
' 如果我在使请求变暗之前在下面添加一行,我会得到“'底层连接已关闭:接收时发生意外错误。'内部异常:Win32Exception:客户端和服务器无法通信,因为它们没有通用算法"
ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3
任何帮助都会很棒。
解决方法
这对你有用吗? 把它放在靠近顶部的地方。
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls Or SecurityProtocolType.Tls11 Or
SecurityProtocolType.Tls12 Or SecurityProtocolType.Ssl3 Or SecurityProtocolType.Ssl3
ServicePointManager.ServerCertificateValidationCallback = Function(obj As [Object],certificate As X509Certificate,chain As X509Chain,errors As SslPolicyErrors) (True)