2008-10-10 24 views
0

我有一個Excel VBA宏其執行以下HTTP POST成功地運作相當於:爲什麼將內容聲明爲字符串會導致WinHttp在Excel VBA中不發送HTTP內容?

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」,並且內容是正確的。

爲什麼添加一個類型會導致此問題?

回答

2

嗯...

嘗試添加引用到WinHTTP庫(工具 - 參考)。沒有明顯的原因有時候很重要。

但Send方法被聲明爲使用Variant參數,所以使它成爲String沒有意義。

+0

我希望它會在運行時拋出某種錯誤,如果它傳遞了一個字符串,但它只是不發送任何東西。 – 2008-10-11 16:09:47

相關問題