È possibile inviare un array con l'estensione Postman per Chrome?


247

Ho usato l'estensione Postman per Chrome per testare la mia API e vorrei inviare una serie di ID via posta. C'è un modo per inviare qualcosa di elencarlo come parametro in Postman?

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

1
Sono abbastanza sicuro che il modo giusto di inviare un array sia "in qualche modo che il particolare server al quale lo stai inviando lo riceverà correttamente". Questo spiega la variazione delle risposte di seguito, ma sarebbe tutto un po 'più utile se tutti (o chiunque?) Avessero detto quale back-end stavano usando.
mwardm,

Risposte:


439

È necessario aggiungere il suffisso al nome della variabile in []questo modo:

send_array_param_with_postman

Se non funziona, prova a non mettere gli indici tra parentesi:

my_array[]  value1
my_array[]  value2

Nota:

  • Se si utilizza l' app in pacchetto postino , è possibile inviare un array selezionando raw/ json(anziché form-data). Inoltre, assicurati di impostare Content-Typecome application/jsonnella Headersscheda. Ecco un esempio di dati grezzi {"user_ids": ["123" "233"]}, non dimenticare le virgolette!

  • Se stai usando il client REST postino devi usare il metodo che ho descritto sopra perché passare i dati come raw (json) non funzionerà. C'è un bug nel client REST postino (almeno ottengo il bug quando lo uso 0.8.4.6).


3
Nel caso in cui qualcuno stia chiedendo come aggiungere hash invece che solo array, l'idea è sempre la stessa, basta cambiare gli indici in nome hashmy_array[hashname] value1
Bryan P

5
my_array[] valuecreerà un parametro array con i valori forniti, come key => [value]. my_array[key] valuecreerà un hash, come {key => value}.
MARC.RS,

1
nessuno di loro ha funzionato, ma ho capito solo l'aggiunta del nome dell'array nel 2019. [ prntscr.com/nqubpi]
Shreyan Mehta

71

Per me non ha funzionato con array [0], array 1 , .. o array [], array [], .... Funziona più semplicemente: inserisci qui la descrizione dell'immagine


8
Aggiungendo più chiavi con lo stesso nome, il server riceverà solo l'ultimo
evilReiko

per favore dimmi come inviare solo un elemento userid [0] in form-data. se passo userid [] / userid [0] in un campo chiave, viene preso come una stringa!
Johncy,

1
con asp.net core 2.2, riceve tutti gli elementi dell'array con questa soluzione
circa

in Django sono stato in grado di ottenere tutti i file con: request.FILES.getlist ('usersId'), usando questo metodo
Swasidhant

44

Ecco la mia soluzione:

usa i dati del modulo e modifica come di seguito:

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

e otterrai un array come questo:

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

Grande! finalmente posso inviare un oggetto "loc": {"type": "Point", "coordinate": [126.972967, 37.54171],} per digitare loc [type]: Point, loc [coordinate] []: 126 .. ., loc [coordinate] []: 37 ... su Postman thx !!
JillAndMe,

Questo è molto utile perché quando devi inviare file, il formato 'raw' di Postman non funziona. È necessario utilizzare il formato modulo-dati.
arunt

32

Ho anche avuto quel problema e l'ho risolto nel modo seguente:

1 - Andando alla configurazione dell'intestazione della richiesta e aggiunto quanto segue:

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

2 - Per inviare l'array json, sono andato al formato json non elaborato e ho impostato gli user_ids sull'array:

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

Questo ha funzionato per me, tuttavia non è stato necessario impostare l'intestazione Accept
janv8000

Questa era la risposta di cui avevo bisogno.
Phillip Brandon Holmes,

Il mio metodo API prevede List <string> e questo ha funzionato.
Faith vince il

20

Impostare Body come raw e formare l'array come segue:

inserisci qui la descrizione dell'immagine


{"domanda": "Qual è la capitale dell'India", "segna": 1, "opzioni": ["Mumbai", "Pune", "Nuova Delhi", "Jaipur"], "corretto": "Nuova Delhi" }
Prathamesh Altro

17

Come accennato da @pinouchon, puoi passarlo con l'aiuto dell'indice di array

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

Esempio:

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

param1[0][name] test_name

param1[0][value] test_value

17

Se vuoi una serie di dadi, prova questo: inserisci qui la descrizione dell'immagine


2
Per me ciò che ha funzionato per node.js / mongoose è social_links[0].namenotare il periodo
Songtham T.

Nel tuo esempio, se namefosse anche un array? Ho provato qualcosa come social_links[0]name[0]in Django REST Framework (serializzatore di modelli scrivibile nidificato con relazioni molti-a-molti) e non ha funzionato.
Nathan,

11

questo ha funzionato per me. passare un array di oggetti Item {ItemID, ColorID, SizeID, Quntity}

Dati del postino


10

È importante sapere che la casella VALUE può contenere solo un valore numerico (senza specificatori).

Se si desidera inviare ad esempio un array di "messaggi" con Postman, ognuno con un elenco di coppie chiave / valore, immettere ad esempio messaggi [] [motivo] nella casella CHIAVE e il valore della ragione nella casella VALORE:

inserisci qui la descrizione dell'immagine

Il server riceverà:

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

Questo ha funzionato ... ma solo quando ho controllato l'opzione form-data.
Nowdeen,

8

in set di intestazioni

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

Nel corpo selezionare l'opzione

x-www-form-urlencoded

e inserire i dati come array json

user_ids : ["1234", "5678"]

Solo uno che ha funzionato per me utilizzando i dati del modulo! Non potrei usare raw dato che sto inviando anche immagini
Matt Wills,

L'unico ha funzionato anche per me Per i neofiti completi: Premi x-www-form-urlencoded => bulk edit => UserNames: ["UserName1", "UserName2", "UserName3"]
Denys Moroz

7

Questo funziona anche per gli elenchi all'interno dell'oggetto:

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

l'equivalente JSON sarebbe:

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

6

Vai a Intestazione e seleziona Content-Type= application/jsonquindi vai a body e seleziona rawe quindi passa un array.inserisci qui la descrizione dell'immagine


5

Scegli form-data o urlencoded e usa la stessa chiave "user_ids". Il server dovrebbe riceverlo come un array.


A quanto pare, a causa di un bug in Chrome che invia erroneamente con un'intestazione XML anche quando si seleziona JSON in Postman, è necessario aggiungere Content-typeun'intestazione con valore application/json.
Jason Swett,

5
nel caso in cui qualcuno ritorni alla ricerca di una risposta, la chiave per un array dovrebbe essere user_ids [] anziché solo user_ids
anguyen,

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

Puoi passare così. Spero che questo possa aiutare qualcuno.



0

Ho provato tutte le soluzioni qui e in altri post, ma nulla mi ha aiutato.

L'unica risposta mi ha aiutato: l'
aggiunta dell'attributo [FromBody] prima della declerazione del parametro nella firma della funzione:

[Route("MyFunc")]        
public string MyFunc([FromBody] string[] obj)
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.