通过Excel VBA的HTTP Post协助

感谢您提供任何帮助! 我似乎遇到了阻碍。 我试图从Excel电子表格中发送数据string到给定的HTTP位置。 最终我会希望发送string中的实际数据字段,但现在我只是硬编码,以获得POC工作。

在研究了同一主题上的其他post之后,我提出了下面的代码示例,但是当尝试进行连接时,我收到一个“400错误请求”networking错误。

任何人都可以发现我在我的语法中做错了什么?

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 

谢谢!!!

我能弄清楚这一点。 根据接收应用程序,UserID和Pwd需要位于DATAstring内,而不是单独的凭证。 所以最终的结果是这样的:

 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