如何使用VBA从Excel向服务器发送HTTP POST请求?

时间:2020-03-06 14:59:12  来源:igfitidea点击:

从Excel电子表格执行HTTP POST需要什么VBA代码?

解决方案

通过添加对MSXML的引用,可以在VBA项目中使用ServerXMLHTTP。

  • 打开VBA编辑器(通常通过编辑宏)
  • 转到可用参考文献列表
  • 检查Microsoft XML
  • 单击确定。

(来自在VBA项目中引用MSXML)

ServerXMLHTTP MSDN文档包含有关ServerXMLHTTP的所有属性和方法的完整详细信息。

简而言之,它基本上是这样的:

  • 调用打开方法以连接到远程服务器
  • 致电发送以发送请求。
  • 通过responseXML,responseText,responseStream或者responseBody读取响应

在使用MSXML库然后使用XMLHttpRequest对象之前,我已完成此操作。参见http://scriptorium.serve-it.nl/view.php?sid=40

Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP")
URL = "http://www.somedomain.com"
objHTTP.Open "POST", URL, False
objHTTP.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
objHTTP.send("")

另外,为了更好地控制HTTP请求,我们可以使用WinHttp.WinHttpRequest.5.1代替MSXML2.ServerXMLHTTP。