Я використовую розширення 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 або будь-який інший тип рядка. Як і випливає з назви, листонош надсилає ваші необроблені рядкові дані як без змін. Тип даних, які ви надсилаєте, можна встановити, використовуючи заголовок типу вмісту зі спадного меню.
Бінарний файл може використовуватися, коли ви хочете додати до запиту нетекстові дані, наприклад, відео / аудіофайл, зображення чи будь-який інший файл бінарних даних.
Перейдіть за цим посиланням для подальшого читання: Форми в документах HTML
Це пояснює краще: листоноші док
Орган запиту
Створюючи запити, ви б багато працювали з редактором тестових запитів. Листоноша дозволяє надіслати майже будь-який вид HTTP-запиту (Якщо ви не можете щось надіслати, повідомте нас!). Редактор тіла розділений на 4 області та має різні елементи керування залежно від типу тіла.
форми-дані
multipart / form-data - це за замовчуванням кодування веб-форми, яка використовується для передачі даних.Це імітує заповнення форми на веб-сайті та надсилання його. Редактор форм-форм дозволяє встановити пари ключ / значення (використовуючи редактор ключ-значення) для своїх даних. Ви також можете прикріпити файли до ключа. Зауважте, що через обмеження специфікації HTML5 файли не зберігаються в історії чи колекціях. Вам потрібно буде вибрати файл ще раз під час надсилання запиту.urlencoded
Це кодування те саме, що використовується в параметрах URL-адреси. Вам просто потрібно ввести пари ключ / значення, і Postman правильно кодує ключі та значення. Зауважте, що ви не можете завантажувати файли через цей режим кодування. Можливо, існує певна плутанина між формами та даними urlencoded, тому обов’язково спочатку зверніться до свого API.
сирий
Сирий запит може містити все, що завгодно. Поштальон не торкається рядка, введеного в неочищеному редакторі, за винятком заміни змінних середовища. Що б ви не помістили в текстовій області, ви отримаєте запит. Неочищений редактор дозволяє встановити тип форматування разом з правильним заголовком, який слід надіслати разом із необробленим тілом. Ви також можете встановити заголовок Content-Type вручну. Зазвичай ви надсилаєте сюди дані XML або JSON.
двійкові
двійкові дані дозволяють надсилати речі, які ви не можете ввести в Поштальон. Наприклад, графічні, аудіо- чи відеофайли. Ви також можете надсилати текстові файли. Як було сказано раніше в розділі даних форми, вам доведеться повторно вкласти файл, якщо ви завантажуєте запит через історію чи колекцію.
ОНОВЛЕННЯ
Як зазначає VKK , специфікація WHATWG кажуть, що urlencoded є типом кодування за формою за замовчуванням.
Недійсним значенням для цих атрибутів є значення application / x-www-form-urlencoded. Відсутнє значення за замовчуванням для атрибута enctype також є стан application / x-www-form-urlencoded.
Content-Type: application/json
заголовком; і необроблені дані, введені як json, як {foo: bar}
із тим самим Content-Type: application/json
заголовком?
багаточастинні / форми-дані
Примітка. Будь ласка, зверніться до RFC2388 для отримання додаткової інформації про завантаження файлів, включаючи проблеми сумісності з зворотним зв'язком, взаємозв'язок між "багаточастинними / формами-даними" та іншими типами вмісту, проблемами продуктивності тощо.
Будь ласка, зверніться до додатку для отримання інформації про проблеми безпеки для форм.
Тип вмісту "application / x-www-form-urlencoded" неефективний для надсилання великої кількості бінарних даних або тексту, що містить символи, що не містять ASCII. Тип вмісту "багаточастинні / форми-дані" слід використовувати для подання форм, що містять файли, дані, що не належать до ASCII, і двійкові дані.
Тип вмісту "multipart / form-data" відповідає правилам усіх потоків даних MIME, що містяться у багато частинах, як зазначено в RFC2045 . Визначення "багаточастинних / форм-даних" доступне в реєстрі [IANA].
Повідомлення "багаточастинні / форми-дані" містить ряд частин, кожна з яких представляє успішний елемент управління. Частини надсилаються агенту обробки в тому ж порядку, що відповідні елементи керування з'являються в потоці документів. Межі частин не повинні зустрічатися в жодних даних; як це робиться, лежить поза межами цієї специфікації.
Як і у всіх типах MIME з декількома частинами, кожна частина має необов'язковий заголовок "Тип вмісту", який за замовчуванням відповідає "текст / звичайний". Користувацькі агенти повинні надавати заголовок "Content-Type", що супроводжується параметром "charset".
додаток / 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. Тип вмісту "багаточастинні / форми-дані" слід використовувати для подання форм, що містять файли, дані, що не належать до ASCII, і двійкові дані.
Ось кілька додаткових прикладів, щоб побачити необроблений текст, який Поштальон передає у запиті. Це можна побачити, відкривши консоль "Листоноша":
Заголовок
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"}
binary
.