MSXML2.ServerXMLHTTP HTTPS Соединение с сервером было аварийно разорвано

У меня есть следующий тестовый код в VBA в электронной таблице EXCEL. Я пытаюсь использовать MSXML2.ServerXMLHTTP для извлечения JSON из удаленной службы (в конечном итоге может потребоваться сохранение и отправка файлов cookie для создания сеанса для получения даты, поэтому я ищу наиболее гибкий вариант, который кажется ServerXMLHTTP, я могу быть здесь конечно не так)

Я получал ошибку времени выполнения -2147012866 80072efe «Соединение с сервером было аварийно прервано» при доступе к сайту с https

Глядя на некоторые другие вопросы, можно предположить, что это может быть проблема с брандмауэром ... Я отключил брандмауэр Windows, чтобы проверить это, и результаты были такими же.

После некоторых экспериментов MSXML2.XMLHTTP работал нормально. Также, если я захожу на тот же сайт с помощью http, я не получаю никаких ошибок. В этом тестовом коде ниже я получаю ту же ошибку как для MSXML2.ServerXMLHTTP, так и для WinHttp.WinHttpRequest.

 Sub TestRequest()
 Dim objHttp As New MSXML2.XMLHTTP
 Dim objServHttp As New MSXML2.ServerXMLHTTP
 Dim objWinHttp As New WinHttp.WinHttpRequest
 Dim URL As String
    'URL = "http://api.fixer.io/2017-10-10?base=gbp"
    URL = "https://api.fixer.io/2017-10-10?base=gbp"
   objHttp.Open "GET", URL, False
   On Error GoTo Error_request_1
   objHttp.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
   objHttp.send ("")

Error_request_1:


   'objServHttp.setOption 2, objServHttp.GetOption(2) - SXH_SERVER_CERT_IGNORE_ALL_SERVER_ERRORS 'Ignore Possible certificate errors
   'objServHttp.setOption 2, 13056 'Ignore possible certificate errors
   objServHttp.Open "GET", URL, False
   On Error GoTo Error_request_2
   objServHttp.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
   objServHttp.send ("")

Error_request_2:
    Stop

   objWinHttp.Open "GET", URL, False
   On Error GoTo Error_request_3
   objWinHttp.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
   objWinHttp.send ("")


Error_request_3:
    Stop

End Sub

Я утверждаю, что устанавливаю неправильные параметры, но мне сложно найти документацию для них ...

Очень признателен за любую помощь, пытающуюся заставить их работать для https.


person hairy_marmite    schedule 14.10.2017    source источник