Mat*_*och 129 excel post vba http serverxmlhttp
从Excel电子表格执行HTTP POST需要哪些VBA代码?
Bil*_*ard 140
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("")
Run Code Online (Sandbox Code Playgroud)
或者,为了更好地控制HTTP请求,您可以使用它WinHttp.WinHttpRequest.5.1
来代替MSXML2.ServerXMLHTTP
.
Sea*_*ere 49
如果您需要它可以在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
Run Code Online (Sandbox Code Playgroud)
笔记:
有关更多详细信息,您可以查看有关" 使用Excel中的Web服务 "的完整摘要.
小智 40
除了比尔蜥蜴的anwser :
大多数后端解析原始发布数据.例如,在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")
Run Code Online (Sandbox Code Playgroud)
否则,您必须读取变量"$ HTTP_RAW_POST_DATA"上的原始发布数据.
dav*_*d.q 10
要完成其他用户的响应:
为此,我创建了一个“WinHttp.WinHttpRequest.5.1”对象。
使用 VBA 从 Excel 发送带有一些数据的发布请求:
Dim LoginRequest As Object
Set LoginRequest = CreateObject("WinHttp.WinHttpRequest.5.1")
LoginRequest.Open "POST", "http://...", False
LoginRequest.setRequestHeader "Content-type", "application/x-www-form-urlencoded"
LoginRequest.send ("key1=value1&key2=value2")
Run Code Online (Sandbox Code Playgroud)
使用 VBA 从 Excel 发送带有令牌身份验证的 get 请求:
Dim TCRequestItem As Object
Set TCRequestItem = CreateObject("WinHttp.WinHttpRequest.5.1")
TCRequestItem.Open "GET", "http://...", False
TCRequestItem.setRequestHeader "Content-Type", "application/xml"
TCRequestItem.setRequestHeader "Accept", "application/xml"
TCRequestItem.setRequestHeader "Authorization", "Bearer " & token
TCRequestItem.send
Run Code Online (Sandbox Code Playgroud)
您可以通过添加对MSXML的引用在VBA项目中使用ServerXMLHTTP.
(来自VBA项目中的引用MSXML)
该ServerXMLHTTP的MSDN文档有大约所有属性和ServerXMLHTTP的方法的全部细节.
简而言之,它的工作基本上是这样的:
归档时间: |
|
查看次数: |
236339 次 |
最近记录: |