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

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (769)

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

提问于
用户回答回答于
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

用户回答回答于

如果需要它同时在Mac和Windows上工作,可以使用QueryTables:

With ActiveSheet.QueryTables.Add(Connection:="URL;http://carbon.brighterplanet.com/flights.txt", Destination:=Range("A2"))
    .PostText = "origin_airport=MSN&destination_airport=ORD"
    .RefreshStyle = xlOverwriteCells
    .SaveData = True
    .Refresh
End With

注:

  • 关于输出。我不知道是否有可能将结果返回到调用VBA函数的同一个单元格中。在上面的例子中,结果被写入A2。
  • 关于输入。如果希望在更改某些单元格时刷新结果,请确保这些单元格是VBA函数的参数。
  • 这在没有vba的mac 2008的ExcelforMac 2008上是行不通的。EXCEL为Mac 2011获得了VBA。

扫码关注云+社区