Excel GET请求缓存?

时间:2019-07-12 08:28:00

标签: excel vba api get msxml2

我有一个简单的PHI RESTful服务,可以在一个Excel工作簿作为UI的情况下在MYSQL数据库中执行CRUD操作。

打开工作簿会向api发出一个GET请求,该请求运行正常,并且当前数据显示在用户表单上。然后,我具有允许用户更新和添加新记录的控件。从服务器返回的响应,我可以看到数据库已更新。

问题在于,当我触发后续的GET请求时,我只会获得原始数据集,而对基础数据没有任何更改。

仅当我关闭Excel并重新打开工作簿时,我才将新数据返回给我吗?

我已确保与API调用相关的所有变量内容在使用后均被销毁,并且包含数据的变量在调用之前未设置为no,以使表单无法填充“旧”数据。

我还在服务器端放置了调试消息,并且它仅注册初始GET。尽管在调试器中逐步执行了VBA方面的请求,但GET请求似乎并未到达我的服务器。

我还通过在浏览器中调用页面来测试服务器,并且可以在其中看到带有新数据的JSON。

Sub getData() 

Dim ws As Worksheet 
Dim jsonText As String, sUrl As String, response As String 
Dim xmlHttp As New MSXML2.XMLHTTP60 
Dim JSON As Dictionary 
Dim i As Long 
Dim Item As Object 
Dim comp As Dictionary 

Set var = Nothing 
Set JSON = Nothing 
response = "" 

sUrl = "http://xxxxxxxxxxxxxxxxxxxxxxxx" 


With xmlHttp 
    .Open "GET", sUrl, False 
    .Send 
End With 

response = xmlHttp.ResponseText 
Debug.Print response 
Set JSON = JsonConverter.ParseJson(response) 
ReDim var(JSON("records").Count, 5) 
i = 0 
For Each comp In JSON("records") 
    var(i, 0) = comp("CompId") 
    var(i, 1) = comp("CompName") 
    var(i, 2) = comp("Address1") 
    var(i, 3) = comp("Address2") 
    var(i, 4) = comp("Address3") 
    var(i, 5) = comp("PostCode") 

    i = i + 1 
Next 

Set xmlHttp = Nothing 

Debug.Print "finished" 

End Sub 

无错误消息。除了新数据直到我重新打开Excel才返回之外,一切似乎都在起作用。

任何指针都将受到感激。 代码已编辑,可以正确显示

0 个答案:

没有答案