2012-10-06 53 views
136

He estado usando la extensión Postman de Chrome para probar mi API y me gustaría enviar una serie de ID por correo. ¿Hay alguna forma de enviar algo como un parámetro en Postman?¿Es posible enviar una matriz con la extensión Postman Chrome?

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

Estoy bastante seguro de la manera correcta para enviar un arreglo es "de alguna manera que el concreto * * servidor que está enviando a lo recibirán 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 más?) Hubieran dicho qué back-end estaban usando. – mwardm

Respuesta

266

Necesitas sufijo de su nombre de la variable con [] así:

send_array_param_with_postman

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

my_array[] value1 
my_array[] value2 

Nota:

  • Si está utilizando el postman packaged app, puede enviar una matriz mediante la selección de raw/json (en lugar de form-data). Además, asegúrese de establecer Content-Type como application/json en la pestaña Headers. Aquí hay un ejemplo de datos brutos {"user_ids": ["123" "233"]}, ¡no olvide las citas!

  • Si está utilizando el postman REST client tiene que utilizar el método que describí anteriormente porque pasar datos como raw (json) no funcionará. Hay un error en el cliente REST cartero (Al menos recibo el error cuando uso 0.8.4.6).

+3

Por si alguien pregunta cómo agregar hash en lugar de simplemente array, la idea sigue siendo la misma, solo cambiar los índices al nombre hash 'my_array [hashname] value1' –

+4

my_array [] 123, 345, 456 funciona bien – mmrs151

+3

' my_array [] value' creará un parámetro de matriz con los valores proporcionados, como 'key => [value'] . 'my_array [key] value' creará un hash, como' {key => value} '. –

4

Elija form-data o urlencoded y use la misma clave "user_id". El servidor debería recibirlo como una matriz.

+0

Hmm, esto no funciona para mí. –

+0

Parece que, debido a un error en Chrome que envía erróneamente con un encabezado XML incluso cuando selecciona JSON en Postman, debe agregar un encabezado 'Content-type' con el valor' application/json'. –

+4

en caso de que alguien regrese en busca de una respuesta, la clave para una matriz debería ser user_ids [] en lugar de simplemente user_ids – anguyen

31

Para mí no funcionó con array [0], una matriz 1, .. o array [], array [], .... Funciona más simplemente: enter image description here

+1

Al agregar varias claves con el mismo nombre, el servidor recibirá el último solo – evilReiko

16

También tuve ese problema y lo resolvió de la siguiente manera:

1 - Ir a la configuración de encabezado de solicitud y añade lo siguiente:

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

2 - para enviar la matriz JSON, que wen a formato JSON sin procesar y establecer la matriz:

["bbbbbbbbbb","aaaaaaaaaa","987654321","123456789"] 
+0

Esto me sirvió de mucho, sin embargo, configurar el encabezado Aceptar no fue necesario – janv8000

+0

Esta fue la respuesta que necesitaba. –

+0

Mi método API espera lista y esto hizo el trabajo. –

27

H ERE es mi solución:

uso form-data y editar de la siguiente manera:

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

y obtendrá una serie como esta:

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

Como se ha mencionado por @pinouchon puede pasarlo con la ayuda de í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 
+1

Exactamente lo que estaba buscando, ¡gracias! – sander

0

He intentado todas las soluciones aquí y en otras críticas, pero nada ayudó.

La única respuesta me ayudó:
Adición [FromBody] atributo antes decleration de parámetro en firma de la función:

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

en las cabeceras configuradas

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

En el cuerpo opción de selección

x-www-form-urlencoded

e insertar datos como matriz JSON

user_ids : ["1234", "5678"] 
5

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

Postman data

0

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 

la JSON equivalente sería:

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

fijó el cuerpo como materia prima y formar la matriz de la siguiente manera:

enter image description here

0

En form-data,

key    value 

user_ids[]   1234 
user_ids[]   5678 
Cuestiones relacionadas