Ist es möglich, ein Array mit der Postman Chrome-Erweiterung zu senden?


246

Ich habe die Postman Chrome-Erweiterung zum Testen meiner API verwendet und möchte eine Reihe von IDs per Post senden. Gibt es eine Möglichkeit, eine Liste als Parameter in Postman zu senden?

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

1
Ich bin ziemlich sicher der richtige Weg , um ein Array zu senden ist „in gewisser Weise , dass der bestimmte Server , den Sie es senden an wird es korrekt empfangen“. Dies erklärt die unterschiedlichen Antworten unten - aber es wäre alles ein bisschen nützlicher, wenn alle (oder jemand?) Gesagt hätten, welches Back-End sie verwenden.
Mwardm

Antworten:


437

Sie müssen Ihren Variablennamen []wie folgt anhängen :

send_array_param_with_postman

Wenn dies nicht funktioniert, versuchen Sie, keine Indizes in Klammern zu setzen:

my_array[]  value1
my_array[]  value2

Hinweis:

  • Wenn Sie die App Postman Packaged verwenden , können Sie ein Array senden, indem Sie raw/ json(anstelle von form-data) auswählen . Stellen Sie außerdem sicher zu Satz Content-Typewie application/jsonin HeadersTab. Hier ist ein Beispiel für Rohdaten {"user_ids": ["123" "233"]}, vergessen Sie nicht die Anführungszeichen!

  • Wenn Sie den Postman-REST-Client verwenden , müssen Sie die oben beschriebene Methode verwenden, da die Übergabe von Daten als Rohdaten (json) nicht funktioniert. Es gibt einen Fehler im Postman-REST-Client (zumindest bekomme ich den Fehler, wenn ich ihn verwende 0.8.4.6).


3
Nur für den Fall, dass jemand fragt, wie man Hashes anstelle von nur Arrays hinzufügt, ist die Idee immer noch dieselbe. Ändern Sie einfach die Indizes in Hash-Namenmy_array[hashname] value1
Bryan P

5
my_array[] valueerstellt einen Array-Parameter mit den angegebenen Werten als key => [value]. my_array[key] valuewird einen Hash erstellen, als {key => value}.
MARC.RS

1
Keiner von ihnen funktionierte, aber ich fand heraus, dass das Hinzufügen des Array-Namens 2019 funktioniert. [ prntscr.com/nqubpi]
Shreyan Mehta

71

Für mich funktionierte nicht mit Array [0], Array 1 , .. oder Array [], Array [], .... Es funktioniert einfacher: Geben Sie hier die Bildbeschreibung ein


8
Durch Hinzufügen mehrerer Schlüssel mit demselben Namen erhält der Server nur den letzten
evilReiko

Bitte sagen Sie mir, wie ich nur eine Element-Benutzer-ID [0] in Formulardaten senden soll. Wenn ich Benutzer-ID [] / Benutzer-ID [0] in einem Schlüsselfeld übergebe, wird es als Zeichenfolge verwendet!
Johncy

1
mit asp.net core 2.2 empfängt es alle Array-Elemente mit dieser Lösung
ahong

In Django konnte ich mit dieser Methode alle Dateien abrufen mit: request.FILES.getlist ('usersId')
Swasidhant

44

Hier ist meine Lösung:

Verwenden Sie Formulardaten und bearbeiten Sie diese wie folgt:

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

und Sie erhalten ein Array wie folgt:

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

Toll! Endlich kann ich ein Objekt "loc" senden: {"Typ": "Punkt", "Koordinaten": [126.972967, 37.54171],}, um loc [Typ] einzugeben: Punkt, loc [Koordinaten] []: 126 .. ., loc [Koordinaten] []: 37 ... auf Postman thx !!
JillAndMe

Dies ist sehr hilfreich, da beim Senden von Dateien das "rohe" Format von Postman einfach nicht funktioniert. Sie müssen das Formulardatenformat verwenden.
Arunt

32

Ich hatte auch dieses Problem und löste es wie folgt:

1 - Gehen Sie zur Konfiguration des Anforderungsheaders und fügen Sie Folgendes hinzu:

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

2 - Um das JSON-Array zu senden, ging ich zum Raw-JSON-Format und setzte die user_ids auf Array:

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

Dies war der Trick für mich, das Setzen des Accept-Headers war jedoch nicht notwendig
janv8000

Dies war die Antwort, die ich brauchte.
Phillip Brandon Holmes

Meine API-Methode erwartet List <string> und dies hat den Job erledigt.
Glaube gewinnt

20

Stellen Sie Body als roh ein und bilden Sie das Array wie folgt:

Geben Sie hier die Bildbeschreibung ein


{"Frage": "Was ist die Hauptstadt von Indien", "Markierungen": 1, "Optionen": ["Mumbai", "Pune", "Neu-Delhi", "Jaipur"], "Richtig": "Neu-Delhi" }
Prathamesh More

17

Wie von @pinouchon erwähnt, können Sie es mit Hilfe des Array-Index übergeben

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

Beispiel:

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

param1[0][name] test_name

param1[0][value] test_value

17

Wenn Sie eine Reihe von Diktaten möchten, versuchen Sie Folgendes: Geben Sie hier die Bildbeschreibung ein


2
Für mich, was für node.js / mongoose funktioniert hat, ist social_links[0].namedie zusätzliche Periode zu
Songtham T.

Was nameist in Ihrem Beispiel, wenn es sich auch um ein Array handelt? Ich habe etwas wie social_links[0]name[0]in Django REST Framework (verschachtelter beschreibbarer Modell-Serializer mit vielen-zu-vielen-Beziehungen) ausprobiert und es hat nicht funktioniert.
Nathan

11

das hat bei mir funktioniert. um ein Array von Item-Objekten zu übergeben {ItemID, ColorID, SizeID, Quntity}

Postboten Daten


10

Es ist wichtig zu wissen, dass das Feld VALUE nur einen Zahlenwert enthalten darf (keine Bezeichner).

Wenn Sie z. B. ein Array von "Nachrichten" mit Postman senden möchten, die jeweils eine Liste von Schlüssel / Wert-Paaren enthalten, geben Sie z. B. Nachrichten [] [Grund] in das Feld KEY und den Wert von Grund in das Feld VALUE ein:

Geben Sie hier die Bildbeschreibung ein

Der Server erhält:

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

Dies hat den Trick gemacht ... aber nur, wenn ich die Option Formulardaten aktiviert habe.
Nowdeen

8

in Kopfzeilen gesetzt

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

Im Körper wählen Sie Option

x-www-form-urlencoded

und Daten als JSON-Array einfügen

user_ids : ["1234", "5678"]

Nur eine, die bei mir mit Formulardaten funktioniert hat! Raw konnte nicht verwendet werden, da ich auch Bilder sende
Matt Wills

Die einzige funktionierte auch für mich Für vollständige Neulinge: Drücken Sie x-www-form-urlencoded => Bulk-Bearbeitung => Benutzernamen: ["Benutzername1", "Benutzername2", "Benutzername3"]
Denys Moroz

7

Dies funktioniert auch für Listen innerhalb des Objekts:

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

Das äquivalente JSON wäre:

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

6

Gehen Sie zu Header und wählen Sie Content-Type=, application/jsondann gehen Sie zu body und wählen Sie rawein Array aus und übergeben Sie es.Geben Sie hier die Bildbeschreibung ein


5

Wählen Sie entweder Formulardaten oder urlencodiert und verwenden Sie den gleichen Schlüssel "user_ids". Der Server sollte es als Array empfangen.


Aufgrund eines Fehlers in Chrome, der fälschlicherweise mit einem XML-Header gesendet wird, selbst wenn Sie in Postman JSON auswählen, müssen Sie einen Content-typeHeader mit Wert hinzufügen application/json.
Jason Swett

5
Nur für den Fall, dass jemand zurückkommt und nach einer Antwort sucht, sollte der Schlüssel für ein Array user_ids [] sein und nicht nur user_ids
anguyen

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

Sie können so passieren. Hoffe das wird jemandem helfen.



0

Ich habe alle Lösungen hier und in anderen Posts ausprobiert, aber nichts hat geholfen.

Die einzige Antwort hat mir geholfen:
Hinzufügen des Attributs [FromBody] vor der Dekleration des Parameters in der Funktionssignatur:

[Route("MyFunc")]        
public string MyFunc([FromBody] string[] obj)
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.