什么载>>>情绪需要执行HTTP POST从Excel电子表格?

有帮助吗?

解决方案

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和窗户,可以使用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功能。
  • 这不会的工作Mac的Excel2008年,它没有VBA。Mac的Excel2011年得到了VBA回。

更多详细信息,你可以看到我的完整摘要约"使用网络服务从Excel."

除了比尔蜥蜴

大多数后端解析原始发布数据。例如,在PHP中,您将拥有一个数组$ _POST,其中将存储后期数据中的各个变量。在这种情况下,您必须使用额外的标题“Content-type:application / x-www-form-urlencoded”:

Set objHTTP = CreateObject("WinHttp.WinHttpRequest.5.1")
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.setRequestHeader "Content-type", "application/x-www-form-urlencoded"
objHTTP.send ("var1=value1&var2=value2&var3=value3")

否则,您必须阅读变量“$ HTTP_RAW_POST_DATA”的原始发布数据。

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

  1. 打开VBA编辑器(通常通过编辑宏)
  2. 转到可用参考列表
  3. 检查Microsoft XML
  4. 单击“确定”。
  5. (来自在VBA项目中引用MSXML

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

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

    1. 致电开放方法进行连接到远程服务器
    2. 致电发送以发送请求。
    3. 通过 responseXML 阅读回复, responseText responseStream responseBody

我在使用MSXML库然后使用XMLHttpRequest对象之前这样做了。请参阅 http://scriptorium.serve-it.nl/view.php?sid = 40

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top