我在我的pc上托管了一个本地服务器。接下来,我从Excel VBA调用服务器。如果我使用Debug.Print getHTTP(myurl)
,我确实会收到最新的响应。如果我使用Debug.Print (http.responseText)
,我确实收到一个过时的响应。
如果我用Chrome浏览器调用myurl,响应是最新的。
请参阅下面的代码。
知道Debug.Print (http.responseText)
的响应过时的原因是什么吗?
非常感谢!
Public Function getHTTP(ByVal url As String) As String
With CreateObject("MSXML2.ServerXMLHTTP.6.0")
.Open "GET", url, False: .send
getHTTP = StrConv(.responseBody, vbUnicode)
End With
End Function
Sub APItest()
Dim myurl As String
Dim JSON As Object
Dim http As Object
myurl = "http://127.0.0.1:1234/my_local_api_server"
Debug.Print getHTTP(myurl) 'this line gives actual output
Set http = CreateObject("MSXML2.XMLHTTP")
http.Open "GET", myurl, False
http.send
Debug.Print (http.responseText) 'this line gives outdated output from cache
End Sub
见下面的答案:
如何使Microsoft XmlHttpRequest遵从缓存控制指令
我的问题getHTTP中的函数使用MSXML2.ServerXMLHTTP.6.0,它没有兑现问题。