¿Es posible enviar una matriz con la extensión Postman Chrome?

246

He estado usando la extensión Postman Chrome para probar mi API y me gustaría enviar una variedad de ID por correo. ¿Hay alguna manera de enviar algo que enumere esto como un parámetro en Postman?

{
  user_ids: ["1234", "5678"]
}
Will Hitchcock
fuente
1
Estoy bastante seguro de que la forma correcta de enviar una matriz es "de alguna manera que el servidor en particular al que lo envía lo recibirá correctamente". Esto explica la variación en las respuestas a continuación, pero todo sería un poco más útil si todos (¿o alguien?) Hubieran dicho qué back-end estaban usando.
mwardm

Respuestas:

438

Necesita sufijar su nombre de variable de []esta manera:

send_array_param_with_postman

Si eso no funciona, intente no poner índices entre paréntesis:

my_array[]  value1
my_array[]  value2

Nota:

  • Si está utilizando la aplicación empaquetada cartero , puede enviar una matriz seleccionando raw/ json(en lugar de form-data). Además, asegúrese de establecer Content-Typecomo application/jsonen la Headerspestaña. Aquí hay un ejemplo para datos en bruto {"user_ids": ["123" "233"]}, ¡no olvide las comillas!

  • Si está utilizando el cliente REST de cartero , debe utilizar el método que describí anteriormente porque pasar datos como sin formato (json) no funcionará. Hay un error en el cliente REST del cartero (al menos obtengo el error cuando lo uso 0.8.4.6).

Benjamin Crouzier
fuente
3
En caso de que alguien pregunte cómo agregar hashes en lugar de solo array, la idea sigue siendo la misma, solo cambie los índices a hash namemy_array[hashname] value1
Bryan P
55
my_array[] valuecreará un parámetro de matriz con los valores proporcionados, como key => [value]. my_array[key] valuecreará un hash, como {key => value}.
MARC.RS
1
ninguno de ellos funcionó, pero descubrí que agregar el nombre de la matriz funciona en 2019. [ prntscr.com/nqubpi]
Shreyan Mehta
71

Para mí no funcionaba con array [0], array 1 , .. o array [], array [], .... Funciona más simple: ingrese la descripción de la imagen aquí

Popa Andrei
fuente
8
Al agregar varias claves con el mismo nombre, el servidor recibirá solo la última
evilReiko
dígame cómo enviar solo un elemento userid [0] en datos de formulario. si paso userid [] / userid [0] en un campo clave, ¡se toma como una cadena!
Johncy
1
con asp.net core 2.2, recibe todos los elementos de la matriz con esta solución
ahong
en Django pude obtener todos los archivos con: request.FILES.getlist ('usersId'), usando este método
Swasidhant
44

Aquí está mi solución:

use datos de formulario y edite de la siguiente manera:

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

y obtendrás una matriz como esta:

{"box":{"0":"a","n1":"b","n2":["c","d"]}}
Gary
fuente
¡Excelente! finalmente puedo enviar un objeto "loc": {"tipo": "Punto", "coordenadas": [126.972967, 37.54171],} para escribir loc [tipo]: Punto, loc [coordenadas] []: 126 .. ., loc [coordenadas] []: 37 ... en Postman thx !!
JillAndMe
Esto es muy útil ya que cuando necesita enviar archivos, el formato 'en bruto' de Postman simplemente no funcionará. Necesita usar el formato de datos de formulario.
Arunt
32

También tuve ese problema y lo resolví haciendo lo siguiente:

1 - Ir a la configuración del encabezado de la solicitud y agregar lo siguiente:

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

2 - Para enviar la matriz json, fui al formato json sin formato y configuré los ID de usuario en la matriz:

user_ids: ["bbbbbbbbbb","aaaaaaaaaa","987654321","123456789"]
mesteves
fuente
Esto hizo el truco para mí, el establecimiento de la cabecera Accept no era necesario, sin embargo
janv8000
Esta fue la respuesta que necesitaba.
Phillip Brandon Holmes
Mi método API espera List <string> y esto hizo el trabajo.
Faith gana el
20

Establezca Body como raw y forme la matriz de la siguiente manera:

ingrese la descripción de la imagen aquí

danywarner
fuente
{"question": "What is capital of India", "marks": 1, "options": ["Mumbai", "Pune", "New Delhi", "Jaipur"], "correct": "New Delhi" }
Prathamesh Más
17

Como mencionó @pinouchon, puede pasarlo con la ayuda del índice de matriz

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

Ejemplo:

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

param1[0][name] test_name

param1[0][value] test_value
Manoj
fuente
17

Si desea una variedad de dictos, intente esto: ingrese la descripción de la imagen aquí

CK
fuente
2
Para mí, lo que funcionó para node.js / mongoose es social_links[0].namenotar el período
Songtham T.
En su ejemplo, ¿qué namepasa si también es una matriz? Intenté algo como social_links[0]name[0]en Django REST Framework (serializador de modelos anidables con relaciones de muchos a muchos) y no funcionó.
Nathan
11

Esto funcionó para mí. para pasar una matriz de objeto Item {ItemID, ColorID, SizeID, Quntity}

Datos de cartero

Abdu Imam
fuente
10

Es importante saber que el cuadro VALOR solo puede contener un valor numérico (sin especificadores).

Si desea enviar, por ejemplo, una matriz de "mensajes" con Postman, cada uno con una lista de pares clave / valor, ingrese, por ejemplo, mensajes [] [motivo] en el cuadro CLAVE y el valor del motivo en el cuadro VALOR:

ingrese la descripción de la imagen aquí

El servidor recibirá:

{"messages"=>[{"reason"=>"scrolled", "tabid"=>"2"}, {"reason"=>"reload", "tabid"=>"1"}], "endpoint"=>{}}
Alexander Roehnisch
fuente
Esto funcionó ... pero solo cuando verifiqué la opción de datos de formulario.
Nowdeen
8

en conjunto de encabezados

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

En el cuerpo seleccione la opción

x-www-form-urlencoded

e inserte datos como matriz json

user_ids : ["1234", "5678"]
Aris
fuente
¡Solo uno que funcionó para mí usando datos de formulario! No se pudo usar raw ya que también estoy enviando imágenes
Matt Wills
El único también funcionó para mí Para los novatos completos: Presione x-www-form-urlencoded => bulk edit => UserNames: ["UserName1", "UserName2", "UserName3"]
Denys Moroz
7

Esto también funciona para listas dentro del objeto:

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

el JSON equivalente sería:

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

Vaya a Encabezado y seleccione Content-Type= application/jsonluego vaya al cuerpo y seleccione rawy luego pase una matriz.ingrese la descripción de la imagen aquí

Farhan
fuente
5

Elija formulario-datos o urlencoded y use la misma clave "user_ids". El servidor debería recibirlo como una matriz.

Abhinav
fuente
Parece que, debido a un error en Chrome que se envía por error con un encabezado XML, incluso cuando selecciona JSON en Postman, debe agregar un Content-typeencabezado con valor application/json.
Jason Swett
55
en caso de que alguien regrese buscando una respuesta, la clave para una matriz debería ser user_ids [] en lugar de solo user_ids
anguyen
3
{
    "data" : [  
        {
            "key1" : "value1",
            "key2" : "value2"   
        },
        {
            "key01" : "value01",
            "key02" : "value02"             
        },
        {
            "key10" : "value10",
            "key20" : "value20"   
        }
    ]
}

Puedes pasar así. Espero que esto ayude a alguien.

Narendra Solanki
fuente
2

En datos de formulario,

   key              value

 user_ids[]         1234
 user_ids[]         5678
Mritunjay Upadhyay
fuente
0

Intenté todas las soluciones aquí y en otras publicaciones, pero nada ayudó.

La única respuesta me ayudó:
Agregar el atributo [FromBody] antes de la declinación del parámetro en la firma de la función:

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