Có thể gửi một mảng với tiện ích mở rộng Postman Chrome không?


246

Tôi đã sử dụng tiện ích mở rộng Postman Chrome để kiểm tra API của mình và muốn gửi một loạt ID qua bài đăng. Có cách nào để gửi một cái gì đó liệt kê danh sách này như một tham số trong Postman không?

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

1
Tôi khá chắc chắn cách đúng để gửi một mảng là "theo một cách nào đó mà máy chủ cụ thể bạn đang gửi nó sẽ nhận được nó một cách chính xác". Điều này giải thích cho sự khác biệt trong các câu trả lời dưới đây - nhưng tất cả sẽ hữu ích hơn một chút nếu tất cả mọi người (hoặc bất cứ ai?) Đã nói những gì mà họ đang sử dụng.
mwardm

Câu trả lời:


438

Bạn cần hậu tố tên biến của bạn []như thế này:

send_array_param_with_postman

Nếu điều đó không hiệu quả, hãy thử không đặt các chỉ mục trong ngoặc:

my_array[]  value1
my_array[]  value2

Ghi chú:

  • Nếu bạn đang sử dụng ứng dụng đóng gói bưu điện , bạn có thể gửi một mảng bằng cách chọn raw/ json(thay vì form-data). Ngoài ra, hãy chắc chắn để đặt Content-Typenhư application/jsontrong Headerstab. Dưới đây là ví dụ cho dữ liệu thô {"user_ids": ["123" "233"]}, đừng quên dấu ngoặc kép!

  • Nếu bạn đang sử dụng ứng dụng khách REST postman, bạn phải sử dụng phương thức tôi đã mô tả ở trên vì truyền dữ liệu dưới dạng raw (json) sẽ không hoạt động. Có một lỗi trong ứng dụng REST postman (Ít nhất là tôi gặp lỗi khi tôi sử dụng 0.8.4.6).


3
Chỉ trong trường hợp ai đó hỏi cách thêm băm thay vì chỉ mảng, ý tưởng vẫn như vậy, chỉ cần thay đổi chỉ mục thành tên bămmy_array[hashname] value1
Bryan P

5
my_array[] valuesẽ tạo một tham số mảng với các giá trị được cung cấp, như key => [value]. my_array[key] valuesẽ tạo ra một hàm băm, như {key => value}.
MARC.RS

1
không ai trong số họ làm việc nhưng tôi đã tìm ra chỉ cần thêm tên mảng hoạt động vào năm 2019. [ prntscr.com/nqubpi]
Shreyan Mehta

71

Đối với tôi không hoạt động với mảng [0], mảng 1 , .. hoặc mảng [], mảng [], .... Nó hoạt động đơn giản hơn: nhập mô tả hình ảnh ở đây


8
Bằng cách thêm nhiều khóa có cùng tên, máy chủ sẽ chỉ nhận được khóa cuối cùng
evilReiko

vui lòng cho tôi biết cách chỉ gửi một phần tử userid [0] trong dữ liệu biểu mẫu. nếu tôi vượt qua userid [] / userid [0] trong trường khóa thì nó được coi là một chuỗi!
Johncy

1
với lõi asp.net 2.2, nó nhận được tất cả các phần tử mảng với giải pháp này
ahong

trong Django tôi đã có thể nhận được tất cả các tệp với: request.FILES.getlist ('usersId'), bằng phương pháp này
Swasidhant

44

Đây là giải pháp của tôi:

sử dụng dữ liệu biểu mẫu và chỉnh sửa như dưới đây:

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

và bạn sẽ nhận được một mảng như thế này:

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

Tuyệt quá! cuối cùng tôi có thể gửi một đối tượng "loc": {"type": "Point", "tọa độ": [126.972967, 37.54171],} để nhập vào loc [type]: Point, loc [tọa độ] []: 126 .. ., loc [tọa độ] []: 37 ... trên Postman thx !!
JillAndMe

Điều này rất hữu ích vì khi bạn cần gửi tệp, định dạng 'thô' của Người đưa thư sẽ không hoạt động. Bạn cần sử dụng định dạng dữ liệu biểu mẫu.
arunt

32

Tôi cũng gặp vấn đề đó và giải quyết nó bằng cách làm như sau:

1 - Chuyển đến cấu hình tiêu đề yêu cầu và thêm vào như sau:

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

2 - Để gửi mảng json, tôi đã chuyển sang định dạng json thô và đặt user_ids thành mảng:

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

Điều này đã giúp tôi rất nhiều, tuy nhiên việc đặt tiêu đề Chấp nhận là không cần thiết
janv8000

Đây là câu trả lời tôi cần.
Phillip Brandon Holmes

Phương thức API của tôi mong đợi Danh sách <chuỗi> và điều này đã thực hiện công việc.
Đức tin thắng

20

Đặt Body là raw và tạo thành mảng như sau:

nhập mô tả hình ảnh ở đây


{"câu hỏi": "Thủ đô của Ấn Độ là gì", "nhãn hiệu": 1, "tùy chọn": ["Mumbai", "Pune", "New Delhi", "Jaipur"], "chính xác": "New Delhi" }
Prathamesh Thêm

17

Như được đề cập bởi @pinouchon, bạn có thể vượt qua nó với sự trợ giúp của chỉ mục mảng

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

Thí dụ:

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

param1[0][name] test_name

param1[0][value] test_value

17

Nếu bạn muốn một loạt các dicts, hãy thử điều này: nhập mô tả hình ảnh ở đây


2
Đối với tôi, những gì hoạt động cho node.js / mongoose là social_links[0].namethông báo khoảng thời gian
Songtham T.

Trong ví dụ của bạn những gì nếu namecũng là một mảng? Tôi đã thử một cái gì đó giống như social_links[0]name[0]trong Django REST Framework (bộ nối tiếp mô hình có thể ghi được lồng nhau với các mối quan hệ nhiều-nhiều) và nó không hoạt động.
Nathan

11

Điều này làm việc cho tôi. để vượt qua một mảng của đối tượng Item {ItemID, ColorID, SizeID, Quntity}

Dữ liệu người đưa thư


10

Điều quan trọng cần biết là hộp GIÁ TRỊ chỉ được phép chứa giá trị số (không có chỉ định).

Nếu bạn muốn gửi ví dụ: một mảng "tin nhắn" với Người đưa thư, mỗi người có một danh sách các cặp khóa / giá trị, hãy nhập ví dụ tin nhắn [] [reason] vào hộp KEY và giá trị của lý do vào hộp VALUE:

nhập mô tả hình ảnh ở đây

Máy chủ sẽ nhận được:

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

Điều này đã có mẹo ... nhưng chỉ khi tôi kiểm tra tùy chọn dữ liệu biểu mẫu.
Bây giờ,

8

trong bộ tiêu đề

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

Trong cơ thể chọn tùy chọn

x-www-form-urlencoding

và chèn dữ liệu dưới dạng mảng json

user_ids : ["1234", "5678"]

Chỉ có một công việc cho tôi sử dụng dữ liệu biểu mẫu! Không thể sử dụng thô vì tôi cũng đang gửi hình ảnh
Matt Wills

Người duy nhất cũng làm việc cho tôi Đối với người mới hoàn toàn: Nhấn x-www-form-urlencoding => chỉnh sửa hàng loạt => UserNames: ["UserName1", "UserName2", "UserName3"]
Denys Moroz

7

Điều này cũng hoạt động cho các danh sách trong đối tượng:

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

JSON tương đương sẽ là:

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

6

Đi đến Tiêu đề và chọn Content-Type= application/jsonsau đó chuyển đến phần thân và chọn rawvà sau đó chuyển một mảng.nhập mô tả hình ảnh ở đây


5

Chọn dữ liệu biểu mẫu hoặc urlencoding và sử dụng cùng một khóa "user_ids". Các máy chủ sẽ nhận được nó như là một mảng.


Có vẻ như, do lỗi trong Chrome gửi nhầm với tiêu đề XML ngay cả khi bạn chọn JSON trong Người đưa thư, bạn phải thêm Content-typetiêu đề có giá trị application/json.
Jason Swett

5
chỉ trong trường hợp ai đó quay lại tìm kiếm câu trả lời, chìa khóa cho một mảng phải là user_ids [] thay vì chỉ user_ids
anguyen

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

Bạn có thể vượt qua như thế này. Hy vọng điều này sẽ giúp được ai đó.



0

Tôi đã thử tất cả các giải pháp ở đây và trong các bài viết khác, nhưng không có gì giúp được.

Câu trả lời duy nhất đã giúp tôi:
Thêm thuộc tính [FromBody] trước khi giải mã tham số trong chữ ký hàm:

[Route("MyFunc")]        
public string MyFunc([FromBody] string[] obj)
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.