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

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).


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í


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

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

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í


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

17

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


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


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"=>{}}

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

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

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í


5

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


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.



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)
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.