为什么将内容声明为string会导致WinHttp在Excel VBA中不发送HTTP内容?
我有一个Excel VBAmacros,它的function相当于下面的HTTP POST:
Set WebClient = CreateObject("WinHttp.WinHttpRequest.5.1") ' ... Configure WebClient for a POST request RequestBody = "<request>" WebClient.send RequestBody
以前,我已经明确地将RequestBody的types设置为一个string,如下所示:
Set WebClient = CreateObject("WinHttp.WinHttpRequest.5.1") ' ... Configure WebClient for a POST request Dim RequestBody As String RequestBody = "<request>" WebClient.send RequestBody
除了服务器没有收到任何请求内容之外,这似乎工作正常。
在通过这两个版本进行debugging时,RequestBody上的一个表将其types描述为“Variant / String”,并且内容是正确的。
为什么添加一个types会导致这个问题?
嗯…
尝试将引用添加到WinHTTP库(工具 – 参考)。 没有明显的原因有时候很重要。
但Send方法被声明为使用一个Variant参数,所以使它string没有任何意义。