0

私は、正常に動作する次の HTTP POST と同等の Excel VBA マクロを持っています。

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 に答える