我有一个Excel VBA宏,它相当于以下成功运行的HTTP POST:
Set WebClient = CreateObject("WinHttp.WinHttpRequest.5.1")
' ... Configure WebClient for a POST request
RequestBody = "<request>"
WebClient.send RequestBody
以前,我已将RequestBody的类型显式设置为String,如下所示:
Set WebClient = CreateObject("WinHttp.WinHttpRequest.5.1")
' ... Configure WebClient for a POST request
Dim RequestBody As String
RequestBody = "<request>"
WebClient.send RequestBody
除了服务器没有收到任何请求内容外,这似乎工作正常。
在通过两个版本进行调试时,RequestBody上的监视将其类型描述为“Variant / String”,内容是正确的。
为什么添加类型会导致此问题?
答案 0 :(得分:2)
嗯...
尝试添加对WinHTTP库的引用(工具 - 引用)。没有明显的理由,有时它很重要。
但是Send方法被声明为使用Variant参数,所以使它成为String是没有意义的。