Apakah mungkin untuk mengirim array dengan ekstensi Chrome tukang pos?


247

Saya telah menggunakan ekstensi Chrome tukang pos untuk menguji API saya dan ingin mengirim array ID melalui pos. Apakah ada cara untuk mengirim daftar sesuatu ini sebagai parameter di tukang pos?

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

1
Saya cukup yakin cara yang tepat untuk mengirim array adalah "dengan cara tertentu server yang Anda kirim akan menerimanya dengan benar". Ini menjelaskan variasi jawaban di bawah ini - tetapi semuanya akan sedikit lebih berguna jika semua orang (atau siapa pun?) Telah mengatakan apa yang mereka gunakan.
mwardm

Jawaban:


439

Anda perlu suffix nama variabel Anda dengan []seperti ini:

send_array_param_with_postman

Jika itu tidak berhasil, cobalah untuk tidak menempatkan indeks di dalam tanda kurung:

my_array[]  value1
my_array[]  value2

catatan:

  • Jika Anda menggunakan aplikasi paket tukang pos , Anda dapat mengirim array dengan memilih raw/ json(bukan form-data). Juga, pastikan untuk mengatur Content-Typeseperti application/jsonpada Headerstab. Ini adalah contoh untuk data mentah {"user_ids": ["123" "233"]}, jangan lupa tanda kutip!

  • Jika Anda menggunakan klien tukang pos REST, Anda harus menggunakan metode yang saya jelaskan di atas karena melewatkan data sebagai mentah (json) tidak akan berfungsi. Ada bug di klien tukang pos REST (Setidaknya saya mendapatkan bug saat menggunakan 0.8.4.6).


3
Kalau-kalau ada orang yang bertanya bagaimana menambahkan hash bukan hanya array, idenya masih sama, hanya mengubah indeks ke nama hashmy_array[hashname] value1
Bryan P

5
my_array[] valueakan membuat parameter array dengan nilai yang disediakan, seperti key => [value]. my_array[key] valueakan membuat hash, sebagai {key => value}.
MARC.RS

1
tidak satu pun dari mereka yang bekerja tetapi saya tahu hanya menambahkan nama array berfungsi pada tahun 2019. [ prntscr.com/nqubpi]
Shreyan Mehta

71

Bagi saya tidak bekerja dengan array [0], array 1 , .. atau array [], array [], .... Ini bekerja lebih sederhana: masukkan deskripsi gambar di sini


8
Dengan menambahkan beberapa kunci dengan nama yang sama, server hanya akan menerima yang terakhir
evilReiko

tolong beri tahu saya cara mengirim hanya satu elemen userid [0] dalam bentuk-data. jika saya melewatkan userid [] / userid [0] di bidang kunci yang diambil sebagai string!
Johncy

1
dengan asp.net core 2.2, ia menerima semua elemen array dengan solusi ini
ahong

di Django saya bisa mendapatkan semua file dengan: request.FILES.getlist ('usersId'), menggunakan metode ini
Swasidhant

44

Ini solusinya:

gunakan formulir-data dan edit seperti di bawah ini:

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

dan Anda akan mendapatkan array seperti ini:

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

Bagus! akhirnya saya dapat mengirim objek "loc": {"type": "Point", "koordinat": [126.972967, 37.54171],} untuk mengetikkan loc [tipe]: Point, loc [koordinat] []: 126 .. ., loc [koordinat] []: 37 ... di Tukang pos thx !!
JillAndMe

Ini sangat membantu karena ketika Anda perlu mengirim file, format 'mentah' Postman tidak akan berfungsi. Anda perlu menggunakan format formulir-data.
arunt

32

Saya juga punya masalah itu, dan menyelesaikannya dengan melakukan hal berikut:

1 - Pergi ke konfigurasi tajuk permintaan dan menambahkan yang berikut:

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

2 - Untuk mengirim array json, saya pergi ke format raw json dan mengatur user_ids ke array:

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

Ini melakukan trik untuk saya, menetapkan tajuk Terima tidak diperlukan
janv8000

Inilah jawaban yang saya butuhkan.
Phillip Brandon Holmes

Metode API saya mengharapkan Daftar <string> dan ini berhasil.
Faith Wins

20

Tetapkan Tubuh sebagai mentah dan bentuk array sebagai berikut:

masukkan deskripsi gambar di sini


{"pertanyaan": "Apa itu ibukota India", "menandai": 1, "opsi": ["Mumbai", "Pune", "New Delhi", "Jaipur"], "benar": "New Delhi" }
Prathamesh More

17

Seperti yang disebutkan oleh @pinouchon Anda dapat melewatinya dengan bantuan indeks array

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

Contoh:

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

param1[0][name] test_name

param1[0][value] test_value

17

Jika Anda ingin berbagai dikte, coba ini: masukkan deskripsi gambar di sini


2
Bagi saya yang bekerja untuk node.js / luwak adalah social_links[0].namemelihat periode
Songtham T.

Dalam contoh Anda bagaimana jika namejuga sebuah array? Saya mencoba sesuatu seperti social_links[0]name[0]di Django REST Framework (bersarang model-serializer bersarang dengan banyak-ke-banyak hubungan) dan tidak berhasil.
Nathan

11

ini berhasil untuk saya. untuk melewatkan larik objek Item {ItemID, ColorID, SizeID, Quntity}

Data tukang pos


10

Penting untuk diketahui, bahwa kotak VALUE hanya diperbolehkan berisi nilai angka (tidak ada penentu).

Jika Anda ingin mengirim mis. Array "pesan" dengan tukang pos, masing-masing memiliki daftar pasangan kunci / nilai, masukkan mis. Pesan [] [alasan] ke dalam kotak KUNCI dan nilai alasan ke dalam kotak VALUE:

masukkan deskripsi gambar di sini

Server akan menerima:

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

Ini berhasil ... tetapi hanya ketika saya memeriksa opsi form-data.
Nowdeen

8

di set header

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

Opsi pilih di badan

x-www-form-urlencoded

dan masukkan data sebagai json array

user_ids : ["1234", "5678"]

Hanya satu yang berfungsi untuk saya menggunakan data formulir! Tidak dapat menggunakan bahan mentah karena saya juga mengirim gambar
Matt Wills

Satu-satunya yang bekerja untuk saya juga Untuk pemula yang lengkap: Tekan x-www-form-urlencoded => bulk edit => UserName1: ["UserName1", "UserName2", "UserName3"]
Denys Moroz

7

Ini juga berfungsi untuk daftar di dalam objek:

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

JSON yang setara adalah:

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

6

Pergi ke Header dan pilih Content-Type= application/jsonlalu pergi ke badan dan pilih rawdan kemudian lulus array.masukkan deskripsi gambar di sini


5

Pilih formulir-data atau urlencoded dan gunakan kunci yang sama "user_ids". Server harus menerimanya sebagai array.


Sepertinya, karena bug di Chrome yang salah kirim dengan tajuk XML bahkan ketika Anda memilih JSON di tukang pos, Anda harus menambahkan Content-typetajuk dengan nilai application/json.
Jason Swett

5
kalau-kalau seseorang kembali mencari jawaban, kunci array haruslah user_ids [] bukan hanya user_ids
anguyen

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

Anda bisa lewat seperti ini. Semoga ini bisa membantu seseorang.



0

Saya mencoba semua solusi di sini dan di pos lain, tetapi tidak ada yang membantu.

Satu-satunya jawaban membantu saya:
Menambahkan atribut [FromBody] sebelum deklerasi parameter dalam tanda tangan fungsi:

[Route("MyFunc")]        
public string MyFunc([FromBody] string[] obj)
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.