2015-07-20 104 views
1

感謝您提供任何幫助!我似乎遇到了阻礙點。 我正嘗試從Excel電子表格中將數據字符串發送到給定的HTTP位置。最終我會希望發送字符串中的實際數據字段,但現在我只是硬編碼以獲得POC工作。通過Excel VBA的HTTP郵政幫助

在研究了關於這個主題的其他帖子之後,我想出了下面的代碼示例,但是當嘗試進行連接時,我收到一個「400錯誤請求」網絡錯誤。

任何人都可以發現我在做什麼我的語法錯了嗎?

Sub HTTPpost() 

Dim result As String 
Dim myURL As String 
Dim postData As String 
Dim winHttpReq As Object 

Set winHttpReq = CreateObject("WinHttp.WinHttpRequest.5.1") 

myURL = "Insert URL Location" 
postData = "Insert Data String" 

winHttpReq.Open "POST", myURL, False 
winHttpReq.SetCredentials "Insert ID", "Insert Pwd", 0 
winHttpReq.SetRequestHeader "Content-Type", "application/x-www-form-urlencoded" 
winHttpReq.Send (postData) 

result = winHttpReq.ResponseText 
Debug.Print vbCrLf & "Results:" & vbCrLf & result 

End Sub 

謝謝!!!

回答

0

我能弄明白這一點。根據接收應用程序,UserID和Pwd需要位於DATA字符串中,而不是單獨的憑證。 因此,作品的最終結果如下所示:

Sub HTTPpost() 

Dim result As String 
Dim myURL As String 
Dim postData As String 
Dim winHttpReq As Object 

Set winHttpReq = CreateObject("WinHttp.WinHttpRequest.5.1") 

myURL = "Insert URL Location" 
postData = "Insert ID & Insert Pwd & Insert Data String" 

winHttpReq.Open "POST", myURL, False 
winHttpReq.SetRequestHeader "Content-Type", "application/x-www-form-urlencoded" 
winHttpReq.Send (postData) 

result = winHttpReq.ResponseText 
Debug.Print vbCrLf & "Results:" & vbCrLf & result 

End Sub