Est-il possible d'envoyer un tableau avec l'extension Postman Chrome?

247

J'ai utilisé l'extension Postman Chrome pour tester mon API et je voudrais envoyer un tableau d'ID par courrier. Existe-t-il un moyen d'envoyer quelque chose comme paramètre dans Postman?

{
  user_ids: ["1234", "5678"]
}
Will Hitchcock
la source
1
Je suis assez certain que la bonne façon d'envoyer un tableau est "d'une certaine manière que le serveur particulier vers lequel vous l'envoyez le recevra correctement". Cela explique la variation dans les réponses ci-dessous - mais tout serait un peu plus utile si tout le monde (ou n'importe qui?) Avait dit quel back-end ils utilisaient.
mwardm

Réponses:

439

Vous devez suffixer le nom de votre variable []comme ceci:

send_array_param_with_postman

Si cela ne fonctionne pas, essayez de ne pas mettre les index entre crochets:

my_array[]  value1
my_array[]  value2

Remarque:

  • Si vous utilisez l' application packagée postman , vous pouvez envoyer un tableau en sélectionnant raw/ json(au lieu de form-data). Assurez-vous également de définir Content-Typecomme application/jsondans l' Headersonglet. Voici un exemple de données brutes {"user_ids": ["123" "233"]}, n'oubliez pas les guillemets!

  • Si vous utilisez le client REST postman, vous devez utiliser la méthode que j'ai décrite ci-dessus car le passage de données en tant que données brutes (json) ne fonctionnera pas. Il y a un bogue dans le client REST du facteur (au moins j'obtiens le bogue lorsque j'utilise 0.8.4.6).

Benjamin Crouzier
la source
3
Juste au cas où quelqu'un demanderait comment ajouter des hachages au lieu d'un simple tableau, l'idée est toujours la même, changez simplement les index en nom de hachagemy_array[hashname] value1
Bryan P
5
my_array[] valuecréera un paramètre de tableau avec les valeurs fournies, comme key => [value]. my_array[key] valueva créer un hachage, comme {key => value}.
MARC.RS
1
aucun d'entre eux n'a fonctionné mais j'ai compris que l'ajout du nom du tableau fonctionne en 2019. [ prntscr.com/nqubpi]
Shreyan Mehta
72

Pour moi, ne fonctionnait pas avec le tableau [0], le tableau 1 , .. ou le tableau [], le tableau [], .... Cela fonctionne plus simplement: entrez la description de l'image ici

Popa Andrei
la source
8
En ajoutant plusieurs clés du même nom, le serveur ne recevra que la dernière
evilReiko
veuillez me dire comment envoyer un seul élément userid [0] dans form-data. si je passe userid [] / userid [0] dans un champ clé, c'est une chaîne!
Johncy
1
avec asp.net core 2.2, il reçoit tous les éléments du tableau avec cette solution
ahong
à Django, j'ai pu obtenir tous les fichiers avec: request.FILES.getlist ('usersId'), en utilisant cette méthode
Swasidhant
44

Voici ma solution:

utilisez les données du formulaire et modifiez comme ci-dessous:

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

et vous obtiendrez un tableau comme celui-ci:

{"box":{"0":"a","n1":"b","n2":["c","d"]}}
Gary
la source
Génial! enfin je peux envoyer un objet "loc": {"type": "Point", "coordonnées": [126.972967, 37.54171],} pour taper loc [type]: Point, loc [coordonnées] []: 126 .. ., loc [coordonnées] []: 37 ... sur Postman thx !!
JillAndMe
Ceci est très utile car lorsque vous devez envoyer des fichiers, le format «brut» de Postman ne fonctionnera tout simplement pas. Vous devez utiliser le format de données de formulaire.
arunt
32

J'ai également rencontré ce problème et l'ai résolu en procédant comme suit:

1 - Aller à la configuration de l'en-tête de la demande et ajouter ce qui suit:

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

2 - Pour envoyer le tableau json, je suis allé au format json brut et j'ai défini les user_ids sur array:

user_ids: ["bbbbbbbbbb","aaaaaaaaaa","987654321","123456789"]
mesteves
la source
Cela a fait l'affaire pour moi, la définition de l'en-tête Accept n'était cependant pas nécessaire
janv8000
C'était la réponse dont j'avais besoin.
Phillip Brandon Holmes
Ma méthode API attend List <string> et cela a fait le travail.
Faith remporte le
20

Définissez Body comme raw et formez le tableau comme suit:

entrez la description de l'image ici

danywarner
la source
{"question": "Quelle est la capitale de l'Inde", "marques": 1, "options": ["Mumbai", "Pune", "New Delhi", "Jaipur"], "correct": "New Delhi" }
Prathamesh More
17

Comme mentionné par @pinouchon, vous pouvez le passer à l'aide de l'index de tableau

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

Exemple:

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

param1[0][name] test_name

param1[0][value] test_value
Manoj
la source
17

Si vous voulez un tableau de dict, essayez ceci: entrez la description de l'image ici

CK
la source
2
Pour moi, ce qui a fonctionné pour node.js / mongoose est de social_links[0].nameremarquer la période
Songtham T.
Dans votre exemple, que faire si nameest également un tableau? J'ai essayé quelque chose comme social_links[0]name[0]dans Django REST Framework (modèle-sérialiseur inscriptible imbriqué avec des relations plusieurs-à-plusieurs) et cela n'a pas fonctionné.
Nathan
11

cela a fonctionné pour moi. pour passer un tableau d'objets Item {ItemID, ColorID, SizeID, Quntity}

Données du facteur

Abdu Imam
la source
10

Il est important de savoir que la zone VALUE ne peut contenir qu'une valeur numérique (pas de spécificateurs).

Si vous voulez envoyer par exemple un tableau de "messages" avec Postman, chacun ayant une liste de paires clé / valeur, entrez par exemple les messages [] [raison] dans la zone KEY et la valeur de raison dans la zone VALUE:

entrez la description de l'image ici

Le serveur recevra:

{"messages"=>[{"reason"=>"scrolled", "tabid"=>"2"}, {"reason"=>"reload", "tabid"=>"1"}], "endpoint"=>{}}
Alexander Roehnisch
la source
Cela a fait l'affaire ... mais seulement lorsque j'ai vérifié l'option de données de formulaire.
Nowdeen
8

dans le jeu d'en-têtes

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

Dans l'option de sélection du corps

x-www-form-urlencoded

et insérer des données sous forme de tableau json

user_ids : ["1234", "5678"]
Aris
la source
Un seul qui a fonctionné pour moi en utilisant les données du formulaire! Impossible d'utiliser le raw car j'envoie aussi des images
Matt Wills
Le seul a également fonctionné pour moi Pour les débutants: Appuyez sur x-www-form-urlencoded => édition en bloc => UserNames: ["UserName1", "UserName2", "UserName3"]
Denys Moroz
7

Cela fonctionne également pour les listes au sein de l'objet:

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

l'équivalent JSON serait:

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

Allez dans Header et sélectionnez Content-Type= application/jsonpuis allez dans body et sélectionnez rawpuis passez un tableau.entrez la description de l'image ici

Farhan
la source
5

Choisissez soit form-data ou urlencoded et utilisez la même clé "user_ids". Le serveur doit le recevoir sous forme de tableau.

Abhinav
la source
Il semble que, en raison d'un bogue dans Chrome qui envoie par erreur avec un en-tête XML même lorsque vous sélectionnez JSON dans Postman, vous devez ajouter un en- Content-typetête avec une valeur application/json.
Jason Swett
5
juste au cas où quelqu'un reviendrait chercher une réponse, la clé d'un tableau devrait être user_ids [] au lieu de juste user_ids
anguyen
3
{
    "data" : [  
        {
            "key1" : "value1",
            "key2" : "value2"   
        },
        {
            "key01" : "value01",
            "key02" : "value02"             
        },
        {
            "key10" : "value10",
            "key20" : "value20"   
        }
    ]
}

Vous pouvez passer comme ça. J'espère que cela aidera quelqu'un.

Narendra Solanki
la source
2

Dans les données de formulaire,

   key              value

 user_ids[]         1234
 user_ids[]         5678
Mritunjay Upadhyay
la source
0

J'ai essayé toutes les solutions ici et dans d'autres articles, mais rien n'y fait.

La seule réponse m'a aidé:
Ajout de l'attribut [FromBody] avant la décomposition du paramètre dans la signature de la fonction:

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