如何获取VB6以使用REST API从https站点成功提取xml数据

时间:2019-01-22 15:44:39

标签: rest xml-parsing vb6 xmlhttprequest

我知道vb6很旧,但是我可以快速处理vb6中的xml数据,而不用学习新的lang。我只是无法让它成功地从所需的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

我尝试将对象ref更改为“ MSXML2.xmlhttp”,“ XMLHTTP60”和“ MSXML2.ServerXMLHTTP”,但仍然没有区别。

每次他们说系统错误-2146697208或访问被拒绝。

如果我将URL放入Web浏览器并查看源代码,那么我会看到后面的xml文本。

我什至试图通过Classic ASP网页(我对这项技术更为熟悉)来全部运行,但仍然无法获取这些数据。

有人知道最终的代码是什么,只需连接到REST API站点并将其作为xml文本对象放下来即可?

谢谢

更新23-01-19

大家好

根据Peter的评论,我一直在尝试在我信任的Win XP SP3计算机上执行此操作,但它没有它。我刚刚在Win 10 Pro机器上的本地ASP经典站点上尝试了以下方法,它可以工作:

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

如果我在Win XP计算机上的经典ASP IIS上运行此确切例程,它将在“设置oXMLHTTP = Server.CreateObject(“ MSXML2.XMLHTTP.6.0”)'行上显示无效的类字符串。如果我将其从“ 6”更改为“ 5”,则可以看到该对象,但是它不再起作用。

我认为这一切都意味着v6以下版本不适用于这些https网站(TLS问题?),因此我需要使用v6,但这可用于Win XP吗?

谢谢

0 个答案:

没有答案