遗留Classic ASP站点集成SyncCentric:cURL转ASP数据字符串求助
解决Classic ASP中转换SyncCentric的cURL请求问题
你需要把cURL中的表单参数转换成application/x-www-form-urlencoded格式的字符串,同时修正授权头格式,以下是调整后的完整代码:
Dim http: Set http = Server.CreateObject("WinHttp.WinHttpRequest.5.1") Dim url: url = "https://app.synccentric.com/api/v3/products" ' 拼接对应cURL中-d参数的表单数据,用&分隔多个键值对 Dim data: data = "identifiers[0][identifier]=B00YECW5VM&identifiers[0][type]=asin&identifiers[1][identifier]=B00USV83JQ&identifiers[1][type]=asin" With http Call .Open("POST", url, False) Call .SetRequestHeader("Content-Type", "application/x-www-form-urlencoded") ' 授权头要加上Bearer前缀,和cURL格式一致 Call .SetRequestHeader("Authorization", "Bearer 你的API密钥") Call .Send(data) End With If Left(http.Status, 1) = 2 Then ' 请求成功,处理返回结果示例 Call Response.Write("请求成功,返回内容:" & http.ResponseText) Else ' 输出错误信息 Call Response.Write("服务器返回错误: " & http.Status & " " & http.StatusText) End If
关键说明:
- 表单数据拼接:cURL中每个
-d参数对应一个键值对,直接用&连接所有键值对即可,无需额外转义(除非参数值包含特殊字符,这里ASIN没有特殊字符,直接拼接即可) - 授权头格式:必须保留
Bearer前缀,和cURL里的Authorization: Bearer your-api-token格式完全匹配,否则会授权失败 - Content-Type:已经设置为
application/x-www-form-urlencoded,和cURL默认的POST请求格式一致,无需修改
内容的提问来源于stack exchange,提问作者user1519995
相关产品推荐
相关产品推荐

