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

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


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


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

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

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


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

17

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


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


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

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

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

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


5

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


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.



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)
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.