微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

VBA 在同一个 Sub 中的多个 WinHTTP Aysnc 请求 我需要什么我尝试了什么

如何解决VBA 在同一个 Sub 中的多个 WinHTTP Aysnc 请求 我需要什么我尝试了什么

我需要什么

  • 能够在一次调用中多次访问我的网络服务器上的端点
  • 每个 http 调用都是异步完成的。
  • 每个 http 调用都是在没有缓存/没有缓存破坏的解决方法的情况下完成的,这些解决方法填充了我的缓存。
  • 与正常的 http 调用相比,每个 http 调用的速度都没有很多

我尝试了什么

鉴于 caching issues with MSXML2.XMLHTTP60issues with MSXML2.ServerXMLHTTP on corporate networks,我正在使用 WinHttp.WinHttpRequest.5.1

我有这个代码

Sub winhttp_test()
    Dim http As Object
    Set http = CreateObject("WinHttp.WinHttpRequest.5.1")

    http.Open "GET","http://localhost:6969/test/winhttp_1",True
    http.setRequestHeader "Content-Type","application/x-www-form-urlencoded"
    http.setRequestHeader "Cache-Control","max-age=0"
    http.send

    'Set http = CreateObject("WinHttp.WinHttpRequest.5.1")

    http.Open "GET","http://localhost:6969/test/winhttp_2","max-age=0"
    http.send
    MsgBox "done"
End Sub

我的服务器永远不会看到第一个请求(即使我取消注释注释行)。
如果我删除 MsgBox 调用,那么我的服务器不会看到两个请求。如果对象在调用后立即销毁,则发送将不起作用。

如果我在没有网络问题的机器上使用 ServerXMLHTTP,我会遇到同样的问题。

(注意:/test 是到终点的路径。所以两个调用都到达相同的终点,但使用不同的参数 url。我尝试使用 GET 和 POST 参数,但是问题还是一样)。

我如何实现我需要的行为?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。