Как заставить VB6 успешно извлекать данные XML с сайта https с помощью REST API - PullRequest
0 голосов
/ 22 января 2019

Я знаю, что vb6 старый, но я могу быстро делать то, что мне нужно, с данными xml в vb6, вместо того, чтобы изучать новый язык. Я просто не могу заставить его успешно извлекать необходимые веб-сайты REST API.

В VB6 я добавил ссылку на Microsoft XML 3 - 6, чтобы попытаться понять, имеет ли это значение, но это не так.

Мой код действительно прост:

Dim sUrl As String
Dim xmlhttp As MSXML2.ServerXMLHTTP60

Set xmlhttp = New MSXML2.ServerXMLHTTP60

sUrl = "<url>"
xmlhttp.Open "GET", sUrl, False
xmlhttp.setRequestHeader "Content-Type", "application/xml"
xmlhttp.send ""

If xmlhttp.Status = 200 Then
 Debug.Print xmlhttp.responseText
End If

Set xmlhttp = Nothing

Я попытался изменить ссылку на объект на MSXML2.xmlhttp, XMLHTTP60 и MSXML2.ServerXMLHTTP, но все равно без разницы.

Каждый раз, когда они говорят либо Системная ошибка -2146697208, либо доступ запрещен.

Если я помещу URL-адрес в веб-браузер и просмотрю исходный код, я увижу xml-текст, который мне нужен.

Я даже пытался запустить все это через веб-страницу Classic ASP (я более знаком с этой технологией), и я до сих пор не могу получить эти данные.

Кто-нибудь знает, что является окончательным кодом для простого подключения к сайту REST API и преобразования его в текстовый объект XML?

Спасибо

ОБНОВЛЕНИЕ 23-01-19

Привет всем

Следуя комментариям Питера, я пытался сделать это на моей доверенной машине с Win XP SP3, и у нее не было бы этого. Я только что попробовал следующее на локальном классическом сайте ASP на компьютере с Win 10 Pro, и оно работает:

URL = "<the url>"

Set oXMLHTTP = Server.CreateObject("MSXML2.XMLHTTP.6.0")
oXMLHTTP.open "GET", URL, false
oXMLHTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
oXMLHTTP.send

IF oXMLHTTP.Status = 200 THEN
 Response.Write oXMLHTTP.ResponseText & "<BR>"
ELSE
 Response.Write "Error"
END IF

Если я запускаю эту точную процедуру на классическом ASP IIS на моей машине с Win XP, в строке «Set oXMLHTTP = Server.CreateObject (« MSXML2.XMLHTTP.6.0 »)» указывается недопустимая строка класса. Если я изменю его с «6» на «5», он сможет увидеть объект, но затем он не будет работать снова.

Я так понимаю, что все это означает, что ниже v6 не работает с этими сайтами https (проблема TLS ??), поэтому мне нужно использовать v6, но доступно ли это для Win XP ??

Спасибо

...