Vba中的Http Post

Omm*_*mit 8 excel post vba xmlhttprequest excel-vba

我想弄清楚如何在VBA中进行POST.理想情况下,我正在寻找一个可以玩的简单工作示例.这是我到目前为止所做的,但我不确定该如何处理它.大多数形式数据是什么样的.

Function WinHTTPPostRequest(URL, formdata, Boundary)
  Dim http 

  Set http = CreateObject("MSXML2.XMLHTTP")

  http.Open "POST", URL, False

  'Set Content-Type header'
  http.setRequestHeader "Content-Type", "multipart/form-data; boundary=" + Boundary

  'Send the form data To URL As POST binary request'
  http.send formdata

  'Get a result of the script which has received upload'
  WinHTTPPostRequest = http.responseText
End Function
Run Code Online (Sandbox Code Playgroud)

编辑:

所以我安装了firebug,以便我可以获得"formdata"的对象名称(参见代码).我原以为formdata看起来像这样的"Form1 = A&Form2 = B".但它还没有成功.关于我应该如何做得更好的任何建议?

编辑:所以似乎可能有我需要在POST请求中发送的隐藏字段.

eaj*_*eaj 4

要以您建议的格式发送表单数据(即与 GET 请求相同),我相信您需要将 Content-Type 标头设置为“application/x-www-form-urlencoded”。

如果您需要发送更复杂的数据(例如,包括文件上传或其他二进制数据),您最好将 Content-Type 设置为“multipart/form-data”。RFC 2388中列出了如何格式化请求正文的详细信息,但您最好找到一个可以为您完成此操作的库。让格式完全正确可能很棘手,而且没有必要重新发明轮子,除非您将其作为一种学习体验。