是否可以发送带有Postman Chrome扩展程序的阵列?


245

我一直在使用Postman Chrome扩展程序来测试我的API,并希望通过邮政发送ID数组。有没有一种方法可以在邮递员中将此列表作为参数发送?

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

1
我相当确定发送数组的正确方法是“以某种方式,将其发送到的特定服务器将正确接收它”。这说明了下面答案的不同之处-但是如果每个人(或任何人?)都说了他们正在使用的后端,那将全部有用。
mwardm '18

Answers:


436

您需要[]像这样在变量名后缀:

send_array_param_with_postman

如果这样不起作用,请尝试不要将索引放在方括号中:

my_array[]  value1
my_array[]  value2

注意:

  • 如果您使用的是邮递员打包的应用程序,则可以通过选择raw/ json(而不是form-data)来发送数组。此外,请务必设定Content-Typeapplication/jsonHeaders标签。这是原始数据的示例{"user_ids": ["123" "233"]},请不要忘记引号!

  • 如果您使用的是邮递员REST客户端,则必须使用上述方法,因为无法将数据作为原始(json)传递。邮递员REST客户端中存在一个错误(至少当我使用时会收到该错误0.8.4.6)。


3
万一有人问如何添加哈希而不是数组,这个想法还是一样,只是将索引更改为哈希名称my_array[hashname] value1
Bryan P

5
my_array[] value将使用提供的值创建一个数组参数,如key => [value]。my_array[key] value将创建一个哈希,如{key => value}
MARC.RS 2015年


71

对我来说,它不适用于array [0],array 1 ..或array [],array [],...。它更简单地工作: 在此处输入图片说明


8
通过添加具有相同名称的多个密钥,服务器将仅接收到最后一个密钥
evilReiko

请告诉我如何在表单数据中仅发送一个元素userid [0]。如果我在密钥字段中传递userid [] / userid [0],则将其视为字符串!
Johncy '18

1
与asp.net核心2.2,它接收所有数组元素与此解决方案
阿旬

在Django中,我可以使用以下方法获取所有文件:request.FILES.getlist('usersId')
Swasidhant

44

这是我的解决方案:

使用表单数据并按如下所示进行编辑:

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

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

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

大!最后,我可以发送一个对象“ loc”:{“ type”:“ Point”,“ coordinates”:[126.972967,37.54171],}以键入loc [type]:点,loc [coordinates] []:126。 。,loc [coordinates] []:37 ... on Postman thx !!
JillAndMe

这非常有用,因为当您需要发送文件时,Postman的“原始”格式将不起作用。您需要使用表单数据格式。
6

32

我也遇到了这个问题,并通过执行以下操作解决了该问题:

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"]

这对我
有用,

这就是我需要的答案。
菲利普·布兰登·霍姆斯

我的API方法期望使用List <string>,并且做到了这一点。
Faith赢得

20

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

在此处输入图片说明


{“问题”:“印度的首都”,“标记”:1,“选项”:[“孟买”,“浦那”,“新德里”,“斋浦尔”],“正确”:“新德里” }
Prathamesh更多

17

如@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

例:

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

param1[0][name] test_name

param1[0][value] test_value

17

如果您想要一组字典,请尝试以下操作: 在此处输入图片说明


2
对我来说,为node.js / social_links[0].name
mongoose

在您的示例中,如果name也是数组怎么办?我social_links[0]name[0]在Django REST Framework中尝试了类似的方法(嵌套的可写模型序列化器,具有多对多关系),但它不起作用。
内森


10

重要的是要知道,VALUE框仅允许包含数字值(无说明符)。

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

在此处输入图片说明

服务器将收到:

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

这确实成功了……但仅当我检查了表单数据选项时。
Nowdeen

8

在标题集

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

体内选择选项

x-www-form-urlencoded

并将数据作为json数组插入

user_ids : ["1234", "5678"]

使用表单数据对我有用的只有一个!由于我也发送图像,因此无法使用原始数据
Matt Wills

唯一的一个也为我工作对于完整的新手:按x-www-form-urlencoded =>批量编辑=> UserNames:[“ UserName1”,“ UserName2”,“ UserName3”]
Denys Moroz

7

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

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"
        }
    ]
}

6

转到页眉并选择Content-Type=,application/json然后转到正文并选择raw,然后传递数组。在此处输入图片说明


5

选择表单数据或urlencoded,并使用相同的键“ user_ids”。服务器应将其作为数组接收。


看起来,由于Chrome中的错误会错误地发送XML标头,即使您在Postman中选择JSON,也必须添加Content-type带有value 的标头application/json
杰森·斯威特

5
万一有人回来寻找答案,数组的键应该是user_ids []而不是user_ids
anguyen 2014年

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

您可以像这样通过。希望这会帮助某人。



0

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

唯一的答案对我有所帮助:
在函数签名中的参数清零之前添加[FromBody]属性:

[Route("MyFunc")]        
public string MyFunc([FromBody] string[] obj)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.