Можно ли отправить массив с расширением Postman Chrome?
Я использовал расширение Postman Chrome для тестирования своего API и хотел бы отправить массив идентификаторов по почте. Есть ли способ отправить что-то перечислить это в качестве параметра в Почтальон?
{
user_ids: ["1234", "5678"]
}
25 ответов
Вам необходимо добавить суффикс имени вашей переменной []
как это:
Если это не сработает, попробуйте не указывать индексы в скобках:
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,.. или массивом [], массивом [], ... . Работает проще:
Вот мое решение:
используйте данные формы и отредактируйте, как показано ниже:
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"]
Как уже упоминалось @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/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 . Я считаю, что это будет работать и для данных формы .
Принятый вопрос не работал для меня.
Для отправки массива с использованием данных формы нет необходимости использовать скобки. Просто отправьте этот конкретный массив, используя одно и то же имя в нескольких полях.
Нравиться:
my_array:value_1
my_array:value_2
Хотя этот вопрос уже принял решение, у этого решения есть недостаток: нам приходится повторять ключ (имя массива) снова и снова, поскольку один ключ принимает только одно значение. Так:
Представьте, что у нас есть 10 или более значений, должны ли мы каждый раз повторять одно и то же имя массива? Программный ответ НЕТ . Тогда мы должны сделать следующее, что является лучшим подходом.
- Выберите данные формы, как обычно
- Введите имя массива в поле «Ключ».
- Передайте массив в поле значения
Так:
Теперь вы сможете отправить массив, но подождите, он не будет храниться в базе данных, как в моем случае с MongoDB. Итак, что вам нужно сделать, это использовать следующий фрагмент кода, чтобы отправить его как массив в базе данных:
- Во-первых, нам нужно разобрать его с помощью JSON, вот так
let user_ids = JSON.parse(body.user_ids);
- Теперь вы можете отправить
переменная в базе данных, например массив
Вот и все!
Вот что сработало для меня
{
"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 году, если все вышеперечисленные решения не помогли, просто не паникуйте. передайте имя массива со значением без скобок и добавьте его несколько раз, просто свяжите, как показано изображение ниже. он должен работать нормально. Если это сработает, купи мне кофе, ххх