Curl 使用具有相同名称的多个字段发布

Curl 使用具有相同名称的多个字段发布,curl,google-apps-script,urlfetch,Curl,Google Apps Script,Urlfetch,我试图从一个需要如下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 -X POST -H "Content-Type: application/x-www-form-urlencoded" -H "Content-Type: ap

我试图从一个需要如下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 -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/"

问题是,正如您所看到的,这些字段具有相同的名称“addr”

所以我试着将数据放入一个名为“addr”的数组中

但它不起作用,服务器无法识别列表“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”

谢谢

  • 您希望将curl命令转换为Google Apps脚本
如果我的理解是正确的,并且您想要使用的服务器需要这些值作为表单数据,那么这次修改怎么样

修改点:
  • 在curl命令中,
    addr=test1&addr=test2
    的值以
    “addr:[“test1”、“test2”]
    的形式发送。
    • 第一次尝试时,
      addr
      的数组无法解析
    • 第二次尝试时,由于使用了相同的密钥,因此只发送了
      addr:“test2”
当上述点反映到脚本中时,修改后的脚本如下所示

修改脚本: 在此修改中,
选项
被修改。我认为,这是相同的结果

如果这不起作用,我很抱歉。

  • 您希望将curl命令转换为Google Apps脚本
如果我的理解是正确的,并且您想要使用的服务器需要这些值作为表单数据,那么这次修改怎么样

修改点:
  • 在curl命令中,
    addr=test1&addr=test2
    的值以
    “addr:[“test1”、“test2”]
    的形式发送。
    • 第一次尝试时,
      addr
      的数组无法解析
    • 第二次尝试时,由于使用了相同的密钥,因此只发送了
      addr:“test2”
当上述点反映到脚本中时,修改后的脚本如下所示

修改脚本: 在此修改中,
选项
被修改。我认为,这是相同的结果


如果这不起作用,我很抱歉。

只需发送与Payload相同的字符串,也许可以尝试:
var options={'method':'POST'};var result=UrlFetchApp.fetch('https://api.omniwallet.org/v2/address/addr/?addr=test1&addr=test2",选择),我认为,即使是POST请求,也可以在URL中添加搜索字符串。作为查询字符串发送不起作用。响应为“{”错误“:“字典中没有地址”}”。按照@TheMaster的建议发送与有效负载相同的字符串,解决了这个问题。@Bruno太好了。考虑接受下面的解决方案,它表示相同的事情。只需发送与PayLoad相同的字符串;尝试:<代码> var选项= {方法〉:“POST”};var result=UrlFetchApp.fetch('https://api.omniwallet.org/v2/address/addr/?addr=test1&addr=test2",选择),我认为,即使是POST请求,也可以在URL中添加搜索字符串。作为查询字符串发送不起作用。响应为“{”错误“:“字典中没有地址”}”。按照@TheMaster的建议发送与有效负载相同的字符串,解决了这个问题。@Bruno太好了。考虑接受下面的解决方案,这说明相同的事情。
var options = { 'method' : 'POST' ,'payload' : { addr: "test1", addr: "test2" } };
var result = UrlFetchApp.fetch('https://api.omniwallet.org/v2/address/addr/', options);
var options = {
  method: 'POST',
  payload: 'addr=test1&addr=test2', // Modified
};