Я использую расширение Postman Chrome для тестирования веб-сервиса.
Есть три варианта ввода данных.
Я думаю, что raw
для отправки JSON.
В чем разница между двумя другими, form-data
и x-www-form-urlencoded
?
forms
web-services
rest
postman
Рохан
источник
источник
binary
.Ответы:
Это разные типы контента формы, определенные W3C. Если вы хотите отправить простые текстовые / ASCII-данные, тогда сработает x-www-form-urlencoded . Это по умолчанию.
Но если вам нужно отправить не ASCII текст или большие двоичные данные, форма-данные для этого.
Вы можете использовать сырье если вы хотите отправить простой текст или JSON или любой другой вид строки. Как следует из названия, Postman отправляет ваши необработанные строковые данные без изменений. Тип данных, которые вы отправляете, может быть установлен с помощью заголовка типа содержимого из выпадающего списка.
Двоичные данные можно использовать, когда вы хотите прикрепить к запросу нетекстовые данные, например, видео / аудио файл, изображения или любой другой файл двоичных данных.
Обратитесь к этой ссылке для дальнейшего чтения: Формы в документах HTML
источник
Это объясняет лучше: документы почтальона
ОБНОВИТЬ
Как указывает VKK , в спецификации WHATWG говорится, что urlencoded является типом кодировки по умолчанию для форм.
источник
Content-Type: application/json
заголовком; а необработанные данные вводятся как json как{foo: bar}
с тем жеContent-Type: application/json
заголовком?многочастному / форм-данных,
Заметка. Пожалуйста, обратитесь к RFC2388 для получения дополнительной информации о загрузке файлов, включая проблемы обратной совместимости, взаимосвязь между «multipart / form-data» и другими типами контента, проблемы с производительностью и т. Д.
Пожалуйста, обратитесь к приложению для получения информации о проблемах безопасности для форм.
Тип содержимого «application / x-www-form-urlencoded» неэффективен для отправки большого количества двоичных данных или текста, содержащего символы не ASCII. Тип контента "multipart / form-data" должен использоваться для отправки форм, которые содержат файлы, данные не ASCII и двоичные данные.
Тип содержимого «multipart / form-data» следует правилам всех составных потоков данных MIME, описанным в RFC2045. . Определение «multipart / form-data» доступно в реестре [IANA].
Сообщение «multipart / form-data» содержит серию частей, каждая из которых представляет успешный элемент управления. Детали отправляются агенту обработки в том же порядке, в котором соответствующие элементы управления отображаются в потоке документов. Границы детали не должны встречаться ни в одной из данных; как это делается, выходит за рамки данной спецификации.
Как и во всех составных MIME-типах, каждая часть имеет необязательный заголовок «Content-Type», который по умолчанию равен «text / plain». Пользовательские агенты должны предоставить заголовок «Content-Type», сопровождаемый параметром «charset».
применение / х-WWW-форм-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-сообщения, отправляемого на сервер, по сути является одной гигантской строкой запроса - пары имя / значение отделяются амперсандом (&), а имена отделяются от значений символом равенства (=). Примером этого может быть:Тип содержимого «application / x-www-form-urlencoded» неэффективен для отправки большого количества двоичных данных или текста, содержащего символы не ASCII. Тип контента "multipart / form-data" должен использоваться для отправки форм, которые содержат файлы, данные не ASCII и двоичные данные.
источник
Вот несколько дополнительных примеров, чтобы увидеть необработанный текст, который Почтальон передает в запросе. Вы можете увидеть это, открыв консоль Postman:
форм-данных,
заголовок
тело
х-WWW-форм-urlencoded
заголовок
тело
Необработанный текст / обычный
заголовок
тело
Сырой джсон
заголовок
тело
источник