0

我有一个 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”并且内容是正确的。

为什么添加类型会导致此问题?

4

1 回答 1

2

唔...

尝试添加对 WinHTTP 库的引用(工具 - 参考)。有时它很重要,没有明显的原因。

但是 Send 方法无论如何都被声明为使用 Variant 参数,因此将其设为 String 没有意义。

于 2008-10-10T18:08:53.420 回答