Czy można wysłać tablicę z rozszerzeniem Postman Chrome?

246

Korzystam z rozszerzenia Postman Chrome do testowania mojego interfejsu API i chciałbym wysłać tablicę identyfikatorów pocztą. Czy istnieje sposób na przesłanie czegoś z listy jako parametru w Postman?

{
  user_ids: ["1234", "5678"]
}
Will Hitchcock
źródło
1
Jestem całkiem pewien, że właściwym sposobem wysłania tablicy jest „w pewien sposób, że konkretny serwer, do którego ją wysyłasz, otrzyma ją poprawnie”. To wyjaśnia odmienność odpowiedzi poniżej - ale byłoby to trochę bardziej przydatne, gdyby wszyscy (czy ktokolwiek?) Powiedzieli, z jakiego back-enda korzystają.
mwardm

Odpowiedzi:

438

Musisz dodać do nazwy zmiennej następującą nazwę []:

send_array_param_with_postman

Jeśli to nie zadziała, spróbuj nie umieszczać indeksów w nawiasach:

my_array[]  value1
my_array[]  value2

Uwaga:

  • Jeśli używasz aplikacji z listonoszem , możesz wysłać tablicę, wybierając raw/ json(zamiast form-data). Upewnij się również, że ustawiłeś Content-Typejak application/jsonna Headerszakładce. Oto przykład surowych danych {"user_ids": ["123" "233"]}, nie zapomnij o ofertach!

  • Jeśli używasz listonoszowego klienta REST , musisz użyć metody opisanej powyżej, ponieważ przekazywanie danych jako raw (json) nie będzie działać. W kliencie REST listonosza jest błąd (przynajmniej dostaję błąd, gdy go używam 0.8.4.6).

Benjamin Crouzier
źródło
3
Na wypadek, gdyby ktoś pytał, jak dodać skróty zamiast tylko tablicy, pomysł jest nadal ten sam, wystarczy zmienić indeksy na nazwę skrótumy_array[hashname] value1
Bryan P
5
my_array[] valueutworzy parametr tablicy z podanymi wartościami, jak key => [value]. my_array[key] valueutworzy hash, as {key => value}.
MARC.RS,
1
żaden z nich nie zadziałał, ale doszedłem do wniosku, że dodanie nazwy tablicy działa w 2019 r. [ prntscr.com/nqubpi]
Shreyan Mehta
71

Dla mnie nie działał z tablicą [0], tablicą 1 , .. lub tablicą [], tablicą [], .... Działa to po prostu: wprowadź opis zdjęcia tutaj

Popa Andrei
źródło
8
Dodając wiele kluczy o tej samej nazwie, serwer otrzyma tylko ostatni
evilReiko 10.09.17
powiedz mi, jak wysłać tylko jeden identyfikator użytkownika [0] w danych formularza. jeśli podam userid [] / userid [0] w polu klucza, jest to traktowane jako ciąg!
Johncy
1
z asp.net core 2.2 otrzymuje wszystkie elementy macierzy dzięki temu rozwiązaniu
ahong
w Django udało mi się uzyskać wszystkie pliki za pomocą: request.FILES.getlist ('usersId'), korzystając z tej metody
Swasidhant
44

Oto moje rozwiązanie:

użyj danych formularza i edytuj jak poniżej:

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

a otrzymasz tablicę taką jak ta:

{"box":{"0":"a","n1":"b","n2":["c","d"]}}
Gary
źródło
Wspaniały! w końcu mogę wysłać obiekt „loc”: {„type”: „Point”, „coordinates”: [126.972967, 37.54171],}, aby wpisać loc [typ]: Point, loc [współrzędne] []: 126 .. ., loc [współrzędne] []: 37 ... na Listonoszu dzięki !!
JillAndMe
Jest to bardzo pomocne, ponieważ kiedy trzeba wysyłać pliki, „surowy” format Listonosza po prostu nie działa. Musisz użyć formatu danych formularza.
około
32

Miałem również ten problem i rozwiązałem go, wykonując następujące czynności:

1 - Przejście do konfiguracji nagłówka żądania i dodanie następujących elementów:

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

2 - Aby wysłać tablicę json, poszedłem do surowego formatu json i ustawiłem user_ids na tablicę:

user_ids: ["bbbbbbbbbb","aaaaaaaaaa","987654321","123456789"]
Mesteves
źródło
To
załatwiło sprawę
To była odpowiedź, której potrzebowałem.
Phillip Brandon Holmes,
Moja metoda API oczekuje listy <ciąg> i to spełniło zadanie.
Faith wygrywa
20

Ustaw Body jako surowe i utwórz tablicę w następujący sposób:

wprowadź opis zdjęcia tutaj

danywarner
źródło
{„question”: „Co jest stolicą Indii”, „marks”: 1, „options”: [„Mumbai”, „Pune”, „New Delhi”, „Jaipur”], „correct”: „New Delhi” }
Prathamesh More
17

Jak wspomniano przez @pinouchon, możesz przekazać go za pomocą indeksu tablicy

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

Przykład:

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

param1[0][name] test_name

param1[0][value] test_value
Manoj
źródło
17

Jeśli chcesz mieć tablicę dykt, spróbuj tego: wprowadź opis zdjęcia tutaj

CK
źródło
2
Dla mnie tym, co zadziałało dla node.js / mongoose, jest social_links[0].namezauważenie dodatkowego okresu
Songtham T.
W twoim przykładzie co jeśli namejest również tablicą? Próbowałem czegoś takiego jak social_links[0]name[0]w Django REST Framework (zagnieżdżony zapisywalny model-serializator z relacjami wiele do wielu) i to nie zadziałało.
Nathan
11

to działało dla mnie. przekazać tablicę obiektu Item {ItemID, ColorID, SizeID, Quntity}

Dane listonosza

Abdu Imam
źródło
10

Ważne jest, aby wiedzieć, że pole WARTOŚĆ może zawierać tylko wartość liczbową (bez specyfikatorów).

Jeśli chcesz wysłać np. Tablicę „wiadomości” za pomocą Listonosza, z których każda zawiera listę par klucz / wartość, wpisz np. Wiadomości [] [przyczyna] w polu KLUCZ, a wartość przyczyny w polu WARTOŚĆ:

wprowadź opis zdjęcia tutaj

Serwer otrzyma:

{"messages"=>[{"reason"=>"scrolled", "tabid"=>"2"}, {"reason"=>"reload", "tabid"=>"1"}], "endpoint"=>{}}
Alexander Roehnisch
źródło
To załatwiło sprawę ... ale tylko wtedy, gdy sprawdziłem opcję danych formularza.
Nowdeen
8

w zestawie nagłówków

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

W ciele wybierz opcję

x-www-form-urlencoded

i wstaw dane jako tablicę json

user_ids : ["1234", "5678"]
Aris
źródło
Tylko jeden działał dla mnie przy użyciu danych formularza! Nie można użyć raw, ponieważ wysyłam też zdjęcia
Matt Wills
Tylko dla mnie działał Dla kompletnych nowicjuszy: Naciśnij x-www-form-urlencoded => edycja zbiorcza => Nazwy użytkowników: [„Nazwa użytkownika1”, „Nazwa użytkownika2”, „Nazwa użytkownika3”]
Denys Moroz
7

Działa to również w przypadku list w obiekcie:

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

odpowiednikiem JSON byłoby:

{
    "Id": 37,
    "IdParent": 26,
    "Name": "Poplet",
    "Values": [
        {
            "Id": 1349,
            "Name": "SomeName"
        },
        {
            "Id": 1350,
            "Name": "AnotherName"
        }
    ]
}
onicofago
źródło
6

Przejdź do nagłówka i wybierz Content-Type= application/jsonnastępnie przejdź do treści i wybierz, rawa następnie przekaż tablicę.wprowadź opis zdjęcia tutaj

Farhan
źródło
5

Wybierz dane formularza lub kod url i użyj tego samego klucza „user_ids”. Serwer powinien otrzymać go jako tablicę.

Abhinav
źródło
Wygląda na to, że z powodu błędu w Chrome, który błędnie wysyła z nagłówkiem XML, nawet jeśli wybierzesz JSON w Postman, musisz dodać Content-typenagłówek z wartością application/json.
Jason Swett
5
na wypadek, gdyby ktoś wrócił i szukał odpowiedzi, kluczem do tablicy powinien być user_ids [] zamiast po prostu user_ids
anguyen
3
{
    "data" : [  
        {
            "key1" : "value1",
            "key2" : "value2"   
        },
        {
            "key01" : "value01",
            "key02" : "value02"             
        },
        {
            "key10" : "value10",
            "key20" : "value20"   
        }
    ]
}

Możesz przejść tak. Mam nadzieję, że to komuś pomoże.

Narendra Solanki
źródło
2

W danych formularza

   key              value

 user_ids[]         1234
 user_ids[]         5678
Mritunjay Upadhyay
źródło
0

Wypróbowałem wszystkie rozwiązania tutaj i na innych postach, ale nic nie pomogło.

Jedyna odpowiedź pomogła mi:
dodanie atrybutu [FromBody] przed dekleracją parametru w sygnaturze funkcji:

[Route("MyFunc")]        
public string MyFunc([FromBody] string[] obj)
Ariela
źródło