如何在asp classic中使用cURL发布数据?

问题描述 投票:0回答:1

如何将数据从

order.asp
发布到第 3 方网址?

我在表单标签中有所有参数。

提交时,第三方希望我添加两个值作为标题。第 3 方代码如下

curl https://www.instamojo.com/api/1.1/payment-requests/ \
  --header "X-Api-Key: [API_KEY]" \
  --header "X-Auth-Token: [AUTH_TOKEN]" \
  --data     
 "allow_repeated_payments=False&amount=2500&buyer_name=John+Doe&purpose=FIFA+16&redirect_url=http%3A%2F%2Fwww.example.com%2Fredirect%2F&phone=9999999999&send_email=True&webhook=http%3A%2F%2Fwww.example.com%2Fwebhook%2F&send_sms=True&email=foo%40example.com"

我使用的是asp classic。我可以使用

response.AddHeader name,value
传递
X-Api-Key
X-Auth-Token
这两个值吗?

如果不可能,那么如何在asp classic中使用curl?

curl vbscript asp-classic
1个回答
12
投票

您可以使用 WinHttpRequest 对象来完成此操作

<%
Dim http: Set http = Server.CreateObject("WinHttp.WinHttpRequest.5.1")
Dim url: url = "https://www.instamojo.com/api/1.1/payment-requests/"
Dim data: data = "allow_repeated_payments=False&amount=2500&buyer_name=John+Doe&purpose=FIFA+16&redirect_url=http%3A%2F%2Fwww.example.com%2Fredirect%2F&phone=9999999999&send_email=True&webhook=http%3A%2F%2Fwww.example.com%2Fwebhook%2F&send_sms=True&email=foo%40example.com"

With http
  Call .Open("POST", url, False)
  Call .SetRequestHeader("Content-Type", "application/x-www-form-urlencoded")
  Call .SetRequestHeader("X-Api-Key", "yourvalue")
  Call .SetRequestHeader("X-Auth-Token", "yourvalue")
  Call .Send(data)
End With

If Left(http.Status, 1) = 2 Then
  'Request succeeded with a HTTP 2xx response, do something...
Else
  'Output error
  Call Response.Write("Server returned: " & http.Status & " " & http.StatusText)
End If
%>

这只是一个硬编码的示例,通常您会通过某种方法构建

data
变量,而不是传递硬编码字符串。

Response.AddHeader()
呢?

Response.AddHeader()
在经典 ASP 中用于设置服务器发送响应时返回到客户端的 HTTP 标头。

在这种情况下,ASP 页面是向另一台服务器发送请求的客户端,因此在这种情况下,您不会使用

Response.AddHeader
,而是使用
SetRequestHeader()
对象的
WinHttpRequest
方法。

© www.soinside.com 2019 - 2024. All rights reserved.