rest - 如何在 Visual Basic 6 (vb6) 中使用 TLS 1.2 - REST
问题描述
APIGee正在将请求迁移到 TLS 1.2
操作系统:Windows Server 2003 !!!
我有一个用 vb6 开发的旧应用程序,但由于这个新迁移它停止工作
这是我的代码
Public Function GetCustomerName(ByVal pCPFCliente As String) As String
Dim xmlhttp As MSXML2.ServerXMLHTTP
Set xmlhttp = New MSXML2.ServerXMLHTTP
xmlhttp.Open "GET", const_URL & "/customer=" & pCPFCliente & "&identification.type=CPF", False
xmlhttp.setRequestHeader "Content-Type", "application/json"
xmlhttp.setRequestHeader "Authorization", const_TOKEN
xmlhttp.send
Dim objJson As Object
Set objJson = JSON.parse(xmlhttp.responseText)
Dim lacoRecord As Integer
Dim customerName As String
customerName = ""
If xmlhttp.Status = 200 Then
For lacoRecord = 1 To objJson.Item("records").Count
customerName = objJson.Item("records")(lacoRecord).Item("name")
Next
ElseIf xmlhttp.Status = 404 Then
If objJson.Item("errorCode") = 20023 Then
Call WriteLogManual("CONSULTA CPF", "Cliente não encontrado! " & pCPFCliente, pPedido, 0, 0, 0, 0, 0)
Else
Call WriteLogManual("CONSULTA CPF", "Erro ao consultar CPF " & pCPFCliente & " - " & xmlhttp.responseText, pPedido, 0, 0, 0, 0, 0)
End If
ElseIf xmlhttp.Status = 503 Then
MsgBox "Ocorreu um erro 503 ao buscar o CPF do Cliente na API. " & Chr(13) & xmlhttp.responseText
Call WriteLogManual("CONSULTA CPF", "Erro ao consultar saldo na ApiGee - " & xmlhttp.responseText, pPedido, 0, 0, 0, 0, 0)
Else
MsgBox "Ocorreu um erro ao buscar o saldo do Cliente na API. " & Chr(13) & xmlhttp.responseText
Call WriteLogManual("CONSULTA CPF", "Erro ao consultar saldo na ApiGee - " & xmlhttp.responseText, pPedido, 0, 0, 0, 0, 0)
End If
GetCustomerName = customerName
End Function
解决方案
为了使用更新的 TLS 协议,需要更新 Windows 上的底层 WinHTTP 服务。这实际上并不特定于 VB6,它适用于在 Windows 上使用 WinHTTP 库的所有应用程序。
Microsoft 在KB 3140245中提供了将更新应用于 Windows 7、Windows Server 2008 R2 和 Windows Server 2012 的说明。还必须更新注册表中的 DefaultSecureProtocols 值,以默认启用 TLS 1.2(和其他所需版本)。
如果您使用的是旧版本的 Windows,WinHTTP 库不支持 1.0 之后的 TLS(并且由于您不再获得操作系统的安全更新,这可能是您最不担心的)。您需要使用其他一些不使用底层 OS Schannel 库来处理其加密的 HTTPS 库,尽管我不知道有任何东西可以轻松集成到 VB6 中。将服务器升级到受支持的 Windows 版本可能是最简单的方法。
推荐阅读
- javascript - Luhn算法实现成原始代码
- python - 以奇怪的格式抓取html表格和
- php - 如何在php中访问不同级别的多维数组
- sql - 加入oracle xe 11g时无法显示具有相同ID的所有记录
- .htaccess - 由于 htaccess 导致的 500 内部服务器错误
- safari - Safari 浏览器 z-index 或变换 CSS 属性问题 - 元素不可见/背景
- javascript - 如何将 Vuforia Web 服务 API 与 JavaScript 一起使用?
- javascript - 返回地图内的对象时获取“TypeError:无法读取未定义的属性'切片'”
- html - 如何在引导程序中将 div 中的内容与它之外的内容对齐?
- email - 我在 Ubuntu 上的 Dovecot 和 Postfix 服务器不工作