Можно ли отправить массив с расширением Postman Chrome?

Я использовал расширение Postman Chrome для тестирования своего API и хотел бы отправить массив идентификаторов по почте. Есть ли способ отправить что-то перечислить это в качестве параметра в Почтальон?

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

25 ответов

Решение

Вам необходимо добавить суффикс имени вашей переменной [] как это:

send_array_param_with_postman

Если это не сработает, попробуйте не указывать индексы в скобках:

my_array[]  value1
my_array[]  value2

Замечания:

  • Если вы используете упакованное приложение почтальона, вы можете отправить массив, выбрав raw / json (вместо form-data). Кроме того, не забудьте установить Content-Type как application/json в Headers Вкладка. Вот пример для необработанных данных {"user_ids": ["123" "233"]}не забывайте цитаты!

  • Если вы используете REST-клиент почтальона, вы должны использовать метод, который я описал выше, потому что передача данных как raw (json) не будет работать. В REST клиенте почтальона есть ошибка (по крайней мере, я получаю ошибку, когда использую 0.8.4.6).

Для меня не работал с массивом [0], массивом 1,.. или массивом [], массивом [], ... . Работает проще:

Если вам нужен массив dicts, попробуйте это:

Вот мое решение:

используйте данные формы и отредактируйте, как показано ниже:

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

и вы получите массив, как это:

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

Важно знать, что поле значения может содержать только значение (без спецификаторов).

Если вы хотите отправить, например, массив "сообщений" с почтальоном, каждое из которых имеет список пар ключ / значение, введите, например, messages[][reason] в качестве ключа, а значение reason под значением:

Сервер получит:

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

У меня тоже была эта проблема, и я решил ее следующим образом:

1 - Переходя к настройке заголовка запроса и добавив следующее:

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

2 - Чтобы отправить массив json, я выбрал необработанный формат json и установил массив:

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

Установите Body как raw и сформируйте массив следующим образом:

введите описание изображения здесь

Как уже упоминалось @pinouchon, вы можете передать его с помощью индекса массива

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

Пример:

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

param1[0][name] test_name

param1[0][value] test_value

Перейдите в заголовок и выберите Content-Type знак равно application/json затем перейдите к телу и выберите raw а затем передать массив.

Это сработало для меня. передать массив объекта Item {ItemID,ColorID,SizeID,Quntity}

Данные почтальона

В наборе заголовков

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

В теле выберите вариант

х-WWW-форм-urlencoded

и вставьте данные в виде массива JSON

user_ids : ["1234", "5678"]

Это также работает для списков внутри объекта:

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

эквивалент JSON будет:

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

В данных формы вы можете передать такой массив

и в бэкэнде вы получите его как

      "tags"=>["aaaa", "bbb"]

В моем случае мне нужно передать два значения в массиве, поэтому я пишу его два раза.

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

Вы можете пройти так. Надеюсь, это кому-нибудь поможет.

Конфигурация заголовка запроса и добавлено следующее

      Accept: application/json

Вам нужно добавить суффикс к имени ключевой переменной с помощью []

likeключ[0][имя]

Вы можете вставить его в режиме «массового редактирования».

Раздел «Тело» в данных формы справа, нажмите «Массовое редактирование» и добавил следующее.

      items[0][prod_id]:174336
items[0][item_weight]:3.400
items[0][item_qty]:1
items[0][item_selected_melting]:92
items[0][item_remarks]:
items[1][prod_id]:12345

Выберите либо form-data, либо urlencoded и используйте тот же ключ "user_ids". Сервер должен получить его как массив.

Моя серверная часть написана на Ruby on Rails. Вот как я отправил параметры массива с помощью Postman. У меня это сработало.

ОБНОВИТЬ

Я использую x-www-form-urlencoded . Я считаю, что это будет работать и для данных формы .

В форме данных,

   key              value

 user_ids[]         1234
 user_ids[]         5678

В моем случае мне нужно отправить массив объектов, я отправил его так

Принятый вопрос не работал для меня.

Для отправки массива с использованием данных формы нет необходимости использовать скобки. Просто отправьте этот конкретный массив, используя одно и то же имя в нескольких полях.

Нравиться:

      my_array:value_1
my_array:value_2

Хотя этот вопрос уже принял решение, у этого решения есть недостаток: нам приходится повторять ключ (имя массива) снова и снова, поскольку один ключ принимает только одно значение. Так:

Представьте, что у нас есть 10 или более значений, должны ли мы каждый раз повторять одно и то же имя массива? Программный ответ НЕТ . Тогда мы должны сделать следующее, что является лучшим подходом.

  1. Выберите данные формы, как обычно
  2. Введите имя массива в поле «Ключ».
  3. Передайте массив в поле значения

Так:

Теперь вы сможете отправить массив, но подождите, он не будет храниться в базе данных, как в моем случае с MongoDB. Итак, что вам нужно сделать, это использовать следующий фрагмент кода, чтобы отправить его как массив в базе данных:

  1. Во-первых, нам нужно разобрать его с помощью JSON, вот так

let user_ids = JSON.parse(body.user_ids);

  1. Теперь вы можете отправитьпеременная в базе данных, например массив

Вот и все!

Вот что сработало для меня

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

Я считаю, что это зависит от того, как настроен бэкэнд большую часть времени.

Предположим, у вас есть массив объектов ниже,

      features: [
      {
        title: { type: String },
        type: { type: String },
      },
    ],

Чтобы добавить значения в форму данных о почтальоне, добавьте это так

      features[title]
features[type]

Проверьте также изображение ниже

Я перепробовал все решения здесь и в других постах, но ничего не помогло.

Единственный ответ помог мне:
Добавление атрибута [FromBody] перед объявлением параметра в сигнатуре функции:

[Route("MyFunc")]        
public string MyFunc([FromBody] string[] obj)

NB Теперь мы в 2022 году, если все вышеперечисленные решения не помогли, просто не паникуйте. передайте имя массива со значением без скобок и добавьте его несколько раз, просто свяжите, как показано изображение ниже. он должен работать нормально. Если это сработает, купи мне кофе, ххх

Другие вопросы по тегам