什么VBA代码是需要从Excel电子表格执行HTTP POST?
Answer 1:
Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP")
URL = ""
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 。
Answer 2:
如果你需要它在Mac和Windows的工作,你可以使用QueryTables:
With ActiveSheet.QueryTables.Add(Connection:="URL;/flights.txt", Destination:=Range("A2"))
.PostText = "origin_airport=MSN&destination_airport=ORD"
.RefreshStyle = xlOverwriteCells
.SaveData = True
.Refresh
End With
笔记:
至于输出...我不知道这是否是可能的结果返回给调用VBA函数相同的细胞。 在上面的例子中,结果被写入到A2。
关于输入...如果你想要的结果,当你改变某些细胞更新,确保这些细胞是参数的VBA函数。
的Mac,不具有VBA这不能在Excel工作。 的Excel for Mac 中得到了VBA回来。
有关详细信息,你可以看到我的完整的总结关于“ 使用Web服务从Excel中 。”
Answer 3:
除了的anwser 蜥蝪比尔 :
大多数后端的解析原始post数据。 在PHP例如,你将有一个数组$ _POST其中所述后数据中各变量将被保存。 在这种情况下,必须使用附加的报头“内容类型:应用程序/ x WWW的形式进行了urlencoded”:
Set objHTTP = CreateObject("WinHttp.WinHttpRequest.5.1")
URL = ""
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”原始POST数据。
Answer 4:
您可以通过添加到MSXML的引用在VBA项目中使用ServerXMLHTTP的。
(通常通过编辑宏)打开VBA编辑器
转到可用引用的列表
检查Microsoft XML
单击确定。
(从VBA项目内引用MSXML )
该ServerXMLHTTP的MSDN文档有大约所有属性和ServerXMLHTTP的方法的全部细节。
总之,虽然,它的工作原理基本上是这样的:
调用开放的方法来连接到远程服务器
呼叫发送发送请求。
通过阅读响应的responseXML , responseText的 , responseStream或responseBody
Answer 5:
我使用MSXML库,然后使用XMLHttpRequest对象这样做过。 见http://scriptorium.serve-it.nl/view.php?sid=40
文章来源: How can I send an HTTP POST request to a server from Excel using VBA?
vba给服务器发送消息 我如何发送一个HTTP POST请求使用VBA从Excel服务器?我如何发送一个HTTP POST请...
如果觉得《vba给服务器发送消息 我如何发送一个HTTP POST请求使用VBA从Excel服务器?我如何发》对你有帮助,请点赞、收藏,并留下你的观点哦!