Я использую расширение Postman Chrome для тестирования веб-службы.
Доступны три варианта ввода данных.
Я предполагаю, что raw
предназначен для отправки JSON.
В чем разница между двумя другими, form-data
и x-www-form-urlencoded
?
Я использую расширение Postman Chrome для тестирования веб-службы.
Доступны три варианта ввода данных.
Я предполагаю, что raw
предназначен для отправки JSON.
В чем разница между двумя другими, form-data
и x-www-form-urlencoded
?
Это разные типы содержимого форм, определенные W3C. Если вы хотите отправить простой текст / данные ASCII, подойдет x-www-form-urlencoded. Это значение по умолчанию.
Но если вам нужно отправить текст, отличный от ASCII, или большие двоичные данные, для этого подойдут данные формы.
Вы можете использовать Raw, если хотите отправить простой текст, JSON или любую другую строку. Как следует из названия, Postman отправляет ваши необработанные строковые данные без изменений. Тип данных, которые вы отправляете, можно установить с помощью заголовка типа содержимого из раскрывающегося списка.
Двоичный можно использовать, если вы хотите прикрепить к запросу нетекстовые данные, например видео / аудиофайл, изображения или любой другой файл двоичных данных.
См. Эту ссылку для дальнейшего чтения: Формы в документах HTML < / а>
Это лучше объясняет: Документы почтальона
Тело запроса
Создавая запросы, вы часто будете иметь дело с редактором тела запроса. Postman позволяет отправлять практически любые HTTP-запросы (если вы не можете что-то отправить, сообщите нам!). Редактор тела разделен на 4 области и имеет различные элементы управления в зависимости от типа тела.
форма-данные
multipart / form-data - это кодировка по умолчанию, которую веб-форма использует для передачи данных.Это имитирует заполнение формы на веб-сайте и ее отправку. Редактор данных формы позволяет вам устанавливать пары ключ / значение (с помощью редактора ключ-значение) для ваших данных. Вы также можете прикреплять файлы к ключу. Обратите внимание, что из-за ограничений спецификации HTML5 файлы не хранятся в истории или коллекциях. Вам нужно будет снова выбрать файл во время отправки запроса.urlencoded
Эта кодировка такая же, как и в параметрах URL. Вам просто нужно ввести пары ключ / значение, и Postman правильно закодирует ключи и значения. Обратите внимание, что вы не можете загружать файлы в этом режиме кодирования. Может быть некоторая путаница между данными формы и urlencoded, поэтому сначала проверьте свой API.
сырой
Необработанный запрос может содержать что угодно. Почтальон не трогает строку, введенную в необработанном редакторе, за исключением замены переменных среды. Все, что вы помещаете в текстовую область, отправляется вместе с запросом. Необработанный редактор позволяет вам установить тип форматирования вместе с правильным заголовком, который вы должны отправить с необработанным телом. Вы также можете установить заголовок Content-Type вручную. Обычно здесь вы отправляете данные XML или JSON.
двоичный
двоичные данные позволяют отправлять вещи, которые вы не можете ввести в Почтальоне. Например, изображения, аудио или видео файлы. Вы также можете отправлять текстовые файлы. Как упоминалось ранее в разделе данных формы, вам придется повторно прикрепить файл, если вы загружаете запрос через историю или коллекцию.
ОБНОВЛЕНИЕ
Как указано VKK, WHATWG spec говорит, что urlencoded является типом кодировки по умолчанию для форм.
Недопустимым значением по умолчанию для этих атрибутов является состояние application / x-www-form-urlencoded. Отсутствующее значение по умолчанию для атрибута enctype также является состоянием application / x-www-form-urlencoded.
Content-Type: application/json
; и необработанные данные, введенные как json, например {foo: bar}
, с тем же заголовком Content-Type: application/json
?
- person Inigo; 13.08.2018
Вот несколько дополнительных примеров, чтобы увидеть необработанный текст, который Почтальон передает в запросе. Вы можете увидеть это, открыв консоль Postman:
Заголовок
content-type: multipart/form-data; boundary=--------------------------590299136414163472038474
Тело
key1=value1key2=value2
Заголовок
Content-Type: application/x-www-form-urlencoded
Тело
key1=value1&key2=value2
Заголовок
Content-Type: text/plain
Тело
This is some text.
Заголовок
Content-Type: application/json
Тело
{"key1":"value1","key2":"value2"}
multipart / form-data
Примечание. Пожалуйста, обратитесь к RFC2388 для получения дополнительной информации о загрузке файлов, включая проблемы обратной совместимости, взаимосвязь между "multipart / form-data "и другие типы контента, проблемы с производительностью и т. д.
Информацию о проблемах безопасности форм см. В приложении.
Тип содержимого «application / x-www-form-urlencoded» неэффективен для отправки больших объемов двоичных данных или текста, содержащих символы, отличные от ASCII. Тип содержимого «multipart / form-data» следует использовать для отправки форм, содержащих файлы, данные, отличные от ASCII, и двоичные данные.
Тип содержимого "multipart / form-data" соответствует правилам всех потоков данных multipart MIME, как указано в RFC2045 а>. Определение «multipart / form-data» доступно в реестре [IANA].
Сообщение "multipart / form-data" содержит ряд частей, каждая из которых представляет собой успешное управление. Части отправляются агенту обработки в том же порядке, в котором соответствующие элементы управления появляются в потоке документов. Границы частей не должны встречаться ни в каких данных; как это делается, выходит за рамки данной спецификации.
Как и во всех составных типах MIME, каждая часть имеет необязательный заголовок Content-Type, который по умолчанию имеет значение «text / plain». Пользовательские агенты должны предоставлять заголовок Content-Type вместе с параметром charset.
application / x-www-form-urlencoded
Это тип содержимого по умолчанию. Формы, отправленные с этим типом контента, должны быть закодированы следующим образом:
Имена и значения элементов управления экранированы. Символы пробела заменяются +', and then reserved characters are escaped as described in [RFC1738], section 2.2: Non-alphanumeric characters are replaced by
% HH ', знаком процента и двумя шестнадцатеричными цифрами, представляющими код ASCII символа. Разрывы строк представлены парами «CR LF» (т. Е. %0D%0A').
The control names/values are listed in the order they appear in the document. The name is separated from the value by
= 'и пары имя / значение отделяются друг от друга символом «&».
application/x-www-form-urlencoded
тело HTTP-сообщения, отправляемого на сервер, по сути, представляет собой одну гигантскую строку запроса - пары имя / значение разделяются амперсандом (&), а имена отделяются от значений символом равенства (=). Примером этого может быть:
MyVariableOne=ValueOne&MyVariableTwo=ValueTwo
Тип содержимого «application / x-www-form-urlencoded» неэффективен для отправки больших объемов двоичных данных или текста, содержащих символы, отличные от ASCII. Тип содержимого «multipart / form-data» следует использовать для отправки форм, содержащих файлы, данные, отличные от ASCII, и двоичные данные.
binary
. - person RBT   schedule 30.11.2017GraphQL
- person ravi kumar   schedule 07.10.2020