我知道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吗?
谢谢