各位好
目前在下有在作vb.net的程式開發,電腦環境是win7
有撰寫一個方法去作get的request
可以確定的是,這段程式碼是可以work的
在爬其他網站時,都是正常的
但在爬郵政商城的網址(https://www.postmall.com.tw/)時,會失敗,並且得到例外:
要求已經中止: 無法建立 SSL/TLS 的安全通道
可以確定不是TLS12的問題
不經意測試發現在IE11上也會有這種狀況,無法顯示此網頁
然而用CHROME就不會,是可以開的起來的
懷疑這之間是有某種關聯?
有試著在IE11上安裝郵政商城的憑證
但仍然一樣不行
IE11已經有更新也有裝最新釋出版本
應該不會是IE太舊的問題了
有在其他win7電腦環境開啟相同網頁
用IE11就可以開的起來
電腦的網段也是一樣的網段
這應該就可以排除是作業系統問題
有確郵政商城的網址是連的通的
感覺偏向於電腦的哪裡的環境設定問題
但就想不到是有什麼可能
還請各位專家們指點一下,謝謝
Public Function getAPIUrlData(ByVal url As String, ByVal param As String, Optional ByVal auth As String = "") As String
Dim jsonURL As String = url + param
Dim reader As StreamReader
Try
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12
Dim request As HttpWebRequest = CType(WebRequest.Create(jsonURL), HttpWebRequest)
request.Method = "GET"
request.ContentType = "text/xml"
If Not StringModule.isNullOrEmpty(auth) Then request.Headers.Add("Authorization", auth)
Dim response As HttpWebResponse = CType(request.GetResponse(), HttpWebResponse)
reader = New StreamReader(response.GetResponseStream())
Return reader.ReadToEnd()
Catch ex As WebException
MsgBox("取得" + jsonURL + "的JSON物件失敗" + vbCrLf + CType(ex.Response, HttpWebResponse).StatusDescription, MsgBoxStyle.Exclamation)
Return ""
End Try
End Function
win7/XP已不支援目前大多數的『大』網站所使用的TLS1.2以上版本,還有SHA3,微軟早已放擺明不再替xp/7/2016以下版本作業系統更新這類加密資料,部份可以打開的網站也僅限於舊系統所架設的網站,逐步汰換更新之後也會再也上不去
怎麼辦?換新系統吧
我是參考: https://blog.alantsai.net/posts/2017/12/csharp-ssl-remote-validation-error
來解決在 WIN2008 上 CALL 電商 API 時 出現 ssl憑證問題
希望能幫您一點忙!