J'utilise l'extension Postman Chrome pour tester mon API et souhaite envoyer un tableau d'identifiants par la poste. Existe-t-il un moyen d'envoyer quelque chose à cette liste en tant que paramètre dans Postman?
{
user_ids: ["1234", "5678"]
}
Vous devez suffixer votre nom de variable avec []
comme ceci:
Si cela ne fonctionne pas, essayez de ne pas mettre les index entre parenthèses:
my_array[] value1
my_array[] value2
Remarque:
Si vous utilisez l'application postman packaged , vous pouvez envoyer un tableau en sélectionnant raw
/json
(au lieu de form-data
). Assurez-vous également de définir Content-Type
en tant que application/json
dans l'onglet Headers
. Voici un exemple pour les données brutes {"user_ids": ["123" "233"]}
, n'oubliez pas les guillemets!
Si vous utilisez le client postman REST , vous devez utiliser la méthode que je viens de décrire car la transmission de données en tant que données brutes (JSON) ne fonctionnera pas. Il y a un bogue dans le client postman REST (Au moins, je reçois le bogue quand j'utilise 0.8.4.6
).
Pour moi ne fonctionne pas avec tableau [0], tableau 1 , .. ou tableau [], tableau [], ... . Cela fonctionne plus simplement:
Voici ma solution:
utilisez les données de formulaire et éditez 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"]}}
J'ai aussi eu ce problème et je 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 me suis tourné au format JSON brut et ai défini le tableau
["bbbbbbbbbb","aaaaaaaaaa","987654321","123456789"]
Comme mentionné par @pinouchon, vous pouvez le transmettre à l'aide du tableau index
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
Choisissez soit des données de formulaire, soit un code url et utilisez la même clé "user_ids". Le serveur devrait le recevoir comme un tableau.
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 en tant que tableau JSON
user_ids : ["1234", "5678"]
Il est important de savoir que le champ de valeur ne peut contenir qu'une valeur (pas de spécificateur).
Si vous voulez envoyer par exemple un tableau de "messages" avec Postman, chacun ayant une liste de paires clé/valeur, entrez par ex. messages [] [raison] en tant que clé et la valeur de raison sous valeur:
Le serveur recevra:
{"messages"=>[{"reason"=>"scrolled", "tabid"=>"2"}, {"reason"=>"reload", "tabid"=>"1"}], "endpoint"=>{}}
{
"data" : [
{
"key1" : "value1",
"key2" : "value2"
},
{
"key01" : "value01",
"key02" : "value02"
},
{
"key10" : "value10",
"key20" : "value20"
}
]
}
Vous pouvez passer comme ça ... Espérons que cela aidera quelqu'un.
Cela fonctionne aussi pour les listes 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,
"Nombre": "SomeName"
},
{
"Id": 1350,
"Nombre": "AnotherName"
}
]
}
Dans les données de formulaire,
key value
user_ids[] 1234
user_ids[] 5678
J'ai essayé toutes les solutions ici et dans d'autres posts, mais rien n'y fait.
La seule réponse m'a aidé:
Ajouter l’attribut [FromBody] avant la décélération du paramètre dans la signature de la fonction:
[Route("MyFunc")]
public string MyFunc([FromBody] string[] obj)