是否有可能发送一个数组与邮差Chrome扩展?

我一直在使用邮递员Chrome扩展来测试我的API,并想通过post发送一个id数组。有没有一种方法可以在Postman中将此作为参数发送?

{
user_ids: ["1234", "5678"]
}
644309 次浏览

选择form-data或urlencoded,并使用相同的键“user_ids”。服务器应该以数组的形式接收它。

你需要像这样用[]作为变量名的后缀:

send_array_param_with_postman .

如果这不起作用,试着不要把索引放在括号里:

my_array[]  value1
my_array[]  value2

注意:

    如果你正在使用邮差打包应用,你可以通过选择raw / json(而不是form-data)来发送一个数组。同样,确保在Headers选项卡中将Content-Type设置为application/json。 下面是原始数据{"user_ids": ["123" "233"]}的例子,不要忘记引号!李< / p > < / >
  • 如果你正在使用邮递员REST客户端,你必须使用我上面描述的方法,因为将数据作为原始(json)传递是行不通的。邮差REST客户端有一个bug(至少我在使用0.8.4.6时得到了这个bug)。

For me not work with array[0], array1, ..或者array[], array[], ... . 它的工作原理更简单: enter image description here

我也遇到过这样的问题,并通过以下方法解决了它:

1 -进入请求头配置并添加以下内容:

Accept : application/json, text/plain, */*
Content-Type : application/json;charset=UTF-8

2 -为了发送json数组,我使用原始json格式,并将user_ids设置为array:

user_ids: ["bbbbbbbbbb","aaaaaaaaaa","987654321","123456789"]

以下是我的解决方案:

使用form-data并按如下方式编辑:

Key       Value
box[]      a
box[n1]    b
box[n2][]  c
box[n2][]  d

你会得到一个这样的数组:

{"box":{"0":"a","n1":"b","n2":["c","d"]}}

正如@pinouchon提到的,你可以在数组索引的帮助下传递它

my_array[0] value
my_array[1] value


In addition to this, to pass list of hashes, you can follow something like:


my_array[0][key1] value1


my_array[0][key2] value2

< em >例子:< / em >

To pass param1=[{name:test_name, value:test_value}, {...}]


param1[0][name] test_name


param1[0][value] test_value

我在这里和其他帖子中尝试了所有的解决方案,但都没有帮助。

唯一的答案帮助了我:
在函数签名的参数声明之前添加[FromBody]属性:

[Route("MyFunc")]
public string MyFunc([FromBody] string[] obj)

在报头集中

content-type : application/x-www-form-urlencoded

在body中选择选项

x-www-form-urlencoded

并插入数据作为json数组

user_ids : ["1234", "5678"]

这对我很管用。传递一个Item对象的数组{ItemID,ColorID,SizeID, quantity}

邮差数据

这也适用于对象中的列表:

Id:37
IdParent:26
Name:Poplet
Values[0].Id:1349
Values[0].Name:SomeName
Values[1].Id:1350
Values[1].Name:AnotherName

等价的JSON是:

{
"Id": 37,
"IdParent": 26,
"Name": "Poplet",
"Values": [
{
"Id": 1349,
"Name": "SomeName"
},
{
"Id": 1350,
"Name": "AnotherName"
}
]
}

将Body设置为raw,并形成如下数组:

enter image description here

在格式,

   key              value


user_ids[]         1234
user_ids[]         5678
{
"data" : [
{
"key1" : "value1",
"key2" : "value2"
},
{
"key01" : "value01",
"key02" : "value02"
},
{
"key10" : "value10",
"key20" : "value20"
}
]
}

你可以这样通过。

重要的是要知道,VALUE框只允许包含一个数值(不允许包含说明符)。

如果你想通过Postman发送一个“消息”数组,每个“消息”都有一个键/值对列表,在key框中输入messages[][reason],在value框中输入reason的值:

enter image description here

服务器将收到:

{"messages"=>[{"reason"=>"scrolled", "tabid"=>"2"}, {"reason"=>"reload", "tabid"=>"1"}], "endpoint"=>{}}

如果你想要一个字典数组,试试这个: enter image description here < / p >

进入Header并选择Content-Type = application/json,然后进入body并选择raw,然后传递一个数组. __abc3

我的后端是用Ruby on Rails编写的。这就是我使用Postman发送数组参数的方式。这对我很管用。

更新

我正在使用x-www-form-urlencoded。我相信它也会为格式工作。

enter image description here

假设你有下面的对象数组,

features: [
{
title: { type: String },
type: { type: String },
},
],

要在邮差的表单数据上添加值,请按以下方式添加

features[title]
features[type]

看看下面的图片

enter image description here

这是对我有用的方法

{
"user_ids":["[1234, 5678]"]
}

我认为这主要取决于后端是如何设置的。

现在我们是在2022年,如果上面所有的解决方案都没有,不要惊慌。传递数组名称和不带括号的值,并将其添加多次,只需链接如下所示的图像。它应该可以正常工作。如果真的有用,请我喝杯咖啡

enter image description here

在form-data中,你可以传递这样一个数组

enter image description here

在后台,你会像a一样取回它

"tags"=>["aaaa", "bbb"]

在我的例子中,我要在一个数组中传递两个值,所以我写了两次

要使用表单数据发送一个数组,不需要使用括号。 只要在多个字段中使用相同的名称发送特定的数组即可

如:

my_array:value_1
my_array:value_2
在我的例子中,我需要发送对象数组,我像这样发送它 enter image description here < / p >

请求头配置并添加如下内容

Accept: application/json

你需要用[]作为关键变量名的后缀

like关键[0][名称]

enter image description here

你可以把它插入“批量编辑”;模式

在右侧的form-data中单击Bulk Edit并添加以下内容

items[0][prod_id]:174336
items[0][item_weight]:3.400
items[0][item_qty]:1
items[0][item_selected_melting]:92
items[0][item_remarks]:
items[1][prod_id]:12345

虽然这个问题已经接受了一个解决方案,但该解决方案有一个缺点,即我们必须一次又一次地重复键(数组名),因为一个键只接受一个值。是这样的:

邮差form-data (Key-Value Pairs) < / >

假设我们有10个或更多的值,我们是否应该每次都重复相同的数组名称?编程的答案是没有。那么我们应该做以下是一个更好的方法。

  1. 像往常一样选择form-data
  2. Type Key字段中的数组名称
  3. 传递Array in Value字段

是这样的:

Passing Array in Postman .

现在,你应该能够发送数组,但是等一下,这不会存储在数据库中,就像在我的情况下,MongoDB。所以你要做的是,使用下面的一段代码像数据库中的数组一样发送它:

  1. 首先,我们需要使用JSON解析它,如下所示

let user_ids = JSON.parse(body.user_ids);

  1. 现在,你可以像数组一样将user_ids变量发送到数据库

这是所有!