Страницы: 1
RSS
Странная ошибка при доступе к https
 
Здравствуйте. Помогите пожалуйста разобраться.
Делаю запрос к адресу https://api.livecoin.net/exchange/ticker с помощью объекта MSXML2.ServerXMLHTTP и получаю странное сообщение об ошибке
-"Error: №-2146893018 - Получено непредвиденное сообщение или оно имеет неправильный формат."
Причем не на все https адреса такая реакция. Некоторые нормально загружает. В google решения не нашел. Грешил на систему - XP32, но браузер нормально загружает.
Вот код

Код
Option Explicit
Const SXH_SERVER_CERT_IGNORE_UNKNOWN_CA = 256
Const SXH_SERVER_CERT_IGNORE_WRONG_USAGE = 512
Const SXH_SERVER_CERT_IGNORE_CERT_CN_INVALID = 4096
Const SXH_SERVER_CERT_IGNORE_CERT_DATE_INVALID = 8192
Const SXH_SERVER_CERT_IGNORE_ALL_SERVER_ERRORS = 13056
'
Sub GetHTTPResponse()
   Dim oXMLHTTP As Object
   On Error Resume Next
   Debug.Print "начало"
   Set oXMLHTTP = CreateObject("MSXML2.ServerXMLHTTP")
   
   With oXMLHTTP
      .Open "GET", "https://api.livecoin.net/exchange/ticker", False
      '.Open "GET", "http://ua.julla-mama.com/category/shorti-kapri/holli/", False
      .SetRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.137 YaBrowser/17.4.1.955 Yowser/2.5 Safari/537.36"
      .SetRequestHeader "Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"
      .SetRequestHeader "Accept-Encoding", "gzip , deflate, sdch, br"
      .SetRequestHeader "Accept-Language", "uk,ru;q=0.8,en;q=0.6"
      .SetRequestHeader "Cache-Control", "Max -age = 0"
      .SetRequestHeader "Connection", "keep-alive"
      .SetRequestHeader "Host", "api.livecoin.net"
      .SetRequestHeader "Upgrade-Insecure-Requests", "1"
      
      .SetOption 2, .GetOption(2) - SXH_SERVER_CERT_IGNORE_ALL_SERVER_ERRORS
      
      .Send
      
      If Err.Number <> 0 Then
         Debug.Print "Error: №" & Err.Number & " - " & Err.Description
         Exit Sub
      End If
      Debug.Print "Status: " & .Status
      Debug.Print "Ответ: " & .ResponseText
      Debug.Print "конец"
   End With
   Set oXMLHTTP = Nothing
End Sub
Заголовки списал из браузера.
обеспечение (win xp 32, excel 2010)
Может есть идеи куда смотреть, что читать.

PS Закомментированная стока '.Open "GET" .... - отрабатывает
 
Код работает, в коде всё правильно

Только уберите строку .SetRequestHeader "Accept-Encoding", "gzip , deflate, sdch, br"
она лишняя (ответ придет закодированным)
Да и вообще, для этого сайта, заголовки запроса передавать необязательно (и так всё работает)

Проблема с HTTPS есть на некоторых компах (процентов 5-10 компов), - именно, что только некоторые соединения по HTTPS блокируются
(не удаётся прогрузить данные)
Где что поменять в настройках windows - не знаю, - может, более опытные коллеги подскажут. (давно ищу решение, пока не нашел)
 
Цитата
Игорь написал:
Код работает, в коде всё правильно
Спасибо. А на какой операционке проверяли. Я проверял на win 10 x64 тоже работает.
А на моей XP 32 нет
И второе, браузер то грузит!
Изменено: pton - 12.01.2018 01:15:14
 
Может у кого-то еще есть идеи или ссылки по этому вопросу
Буду признателен.
 
У меня Ваш код отрабатывает.
А если так сделать? Не одно и тоже получится?
Код
Public Sub ВПУТЬ()
Dim xmlhttp As New MSXML2.XMLHTTP60, myurl As String
myurl = "https://api.livecoin.net/exchange/ticker&quot;
xmlhttp.Open "GET", myurl, False
xmlhttp.Send
Debug.Print "Status: " & xmlhttp.Status
Debug.Print "Ответ: " & xmlhttp.responseText
Debug.Print "конец"
End Sub
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок.
А в том, чтобы писать программы, работающие при любом количестве ошибок.
 
Alemox
К сожалению. и такой вариант выдает ту же ошибку
 
pton, сайт использует TLS протокол безопасности.
И судя по данным:
Цитата
For systems running Windows XP, there is no upgrade or security patch available to resolve the issue. These systems will require a migration to a different OS in order to comply.
ваша система не может обработать запрос.
Решения особо не искал, да и тестировать не на чем.
Попробуйте поискать патчи на эту тему.
И, не пора ли переходить на версию посвежее?
 
Jungl
Спасибо за наводку. Обязательно почитаю.
По поводу системы - браузер открывает ссылку (использую Яндекс-браузер ). IE - не открывает
 
Да. Вы были правы. Это в системе. XP может поддерживать только TLS 1.0 описано здесь
Если сервер требует протокол выше, то это не к xp
А браузеры имеют свои библиотеки поддержки. Кроме IE конечно
а используемый мной MSXML2.XMLHTTP60 соответственно подгружает системные

Ну Вот и пора менять систему. А мне здесь привычно.

Спасибо большое всем кто отозвался
Страницы: 1
Наверх