Мой код Excel VBA вызывает два разных сервера, используя объект CreateObject("Msxml2.XMLHTTP.6.0")
. Когда я выполняю код VBA на своем компьютере (Windows 10 и Office 2019), я не получаю никакой ошибки при вызове обоих серверов. У меня есть другой ноутбук (Windows 7 и Office 2013), на этом ноутбуке я могу успешно выполнить вызов на сервер один, но при вызове другого сервера я получаю сообщение об ошибке "-2147012739: ошибка в поддержке безопасного канала" в макросе VBA.
Это критическая проблема для меня, так как мой клиент сообщил об ошибке на своих машинах. Я не знаю о конфигурации на клиентском компьютере и абсолютно не могу изменять какие-либо конфигурации на своих компьютерах.
Единственный вариант, который мне нужно устранить, - это использовать VBA. Пожалуйста, помогите.
Примечание: у меня уже есть опция «Использовать TLS1.2», выбранная в свойствах Inte rnet, но я все еще получаю ошибку выше.
Код, который работает на обоих ПК:
Sub WORKING()
Dim objHTTP As Object
Dim reqJson As String
Dim URL As String
reqJson = "{""requestData"":{""actionDetails"":[{""templateName"":""TrialProjects"",""envAlias"":""DEV2"",""userName"":""amy.marlin"",""loggerSheetName"":""SL_Dbg_123"",""buttonClicked"":""Create Projects""}]}}"
URL = "https://simplifiedloader01.com/COM_UserValidation/requestProcessor"
Set objHTTP = CreateObject("Msxml2.ServerXMLHTTP.6.0")
objHTTP.setTimeouts 0, 0, 0, 0
objHTTP.Open "POST", URL, False
objHTTP.setProxy 0, "", ""
objHTTP.setRequestHeader "Content-Type", "application/json"
objHTTP.setRequestHeader "CharSet", "charset=UTF-8"
objHTTP.setRequestHeader "Content-Length", Len(reqJson)
objHTTP.setRequestHeader "Connection", "Keep-Alive"
objHTTP.Send (reqJson)
MsgBox objHTTP.responseText
End Sub
Код, который работает только на Windows 10:
Sub NOTWORKING()
Dim G_HTTP_Connection_Obj As Object
Dim reqJson As String
Dim URL As String
reqJson = "<soap:Envelope xmlns:soap='http://www.w3.org/2003/05/soap-envelope' xmlns:pub='http://xmlns.oracle.com/oxp/service/PublicReportService'><soap:Header/><soap:Body><pub:validateLogin/></soap:Body></soap:Envelope>"
URL = "https://adc2-zkuh-fa-ext.oracledemos.com/xmlpserver/services/ExternalReportWSSService?WSDL"
Set G_HTTP_Connection_Obj = CreateObject("Msxml2.ServerXMLHTTP.6.0")
G_HTTP_Connection_Obj.setTimeouts 0, 0, 0, 0
G_HTTP_Connection_Obj.Open "POST", URL, False
G_HTTP_Connection_Obj.setProxy 0, "", ""
G_HTTP_Connection_Obj.setRequestHeader "Content-Type", "application/soap+xml"
G_HTTP_Connection_Obj.setRequestHeader "CharSet", "charset=UTF-8"
G_HTTP_Connection_Obj.setRequestHeader "Content-Length", Len(reqJson)
G_HTTP_Connection_Obj.setRequestHeader "Connection", "Keep-Alive"
G_HTTP_Connection_Obj.Send (reqJson)
MsgBox G_HTTP_Connection_Obj.responseText
End Sub