我正在尝试从需要这样的POST参数的API收集一些数据
POST /v2/address/addr/ HTTP/1.1
Host: api.omniwallet.org
Content-Type: application/x-www-form-urlencoded
addr=test1&addr=test2
CURL版本
curl -X POST -H "Content-Type: application/x-www-form-urlencoded" -H "Content-Type: application/x-www-form-urlencoded" -d "addr=test1&addr=test2" "https://api.omniwallet.org/v2/address/addr/"
https://api.omniwallet.org/#doc-general-notes
问题是,如您所见,这些字段具有相同的名称“ addr”。
所以我试图将数据放入名为“ addr”的数组中
var options = { 'method' : 'POST' ,'payload' : { addr: [ "test1", "test2"] } };
var result = UrlFetchApp.fetch('https://api.omniwallet.org/v2/address/addr/', options);
但是它没有用,服务器无法识别列表“ addr”上的表单数据字段。 也尝试过
var options = { 'method' : 'POST' ,'payload' : { addr: "test1", addr: "test2" } };
var result = UrlFetchApp.fetch('https://api.omniwallet.org/v2/address/addr/', options);
但是它也不起作用,因为它只会考虑第二个“ addr”字段的值(显然)。
是否仍然可以通过其他方式执行此POST方法,如CURL示例中那样我可以强制执行“ addr = test1&addr = test2”?
谢谢!
答案 0 :(得分:1)
如果我的理解是正确的,并且您要使用的服务器需要这些值作为表单数据,那么此修改如何?
addr=test1&addr=test2
的值以"addr": ["test1", "test2"]
的形式发送。
addr
的数组。addr: "test2"
。当上述几点反映到脚本时,修改后的脚本如下。
在此修改中,options
被修改。我认为与@TheMaster的结果相同。
var options = {
method: 'POST',
payload: 'addr=test1&addr=test2', // Modified
};
如果这不起作用,对不起。