Тип содержимого формы для JSON HTTP POST? - PullRequest
25 голосов
/ 22 ноября 2010

Просто нужно уточнить типы содержимого формы:

  1. application/x-www-form-urlencoded: сюда можно отправлять параметры, закодированные с помощью URL.

  2. multipart/form-data: ??

Мне нужно отправить JSON в сообщении (поэтому он будет иметь тип: text/x-json, я полагаю).Таким образом, вопрос в том, подходит ли multipart/form-data для этой цели / лучше application/x-www-form-urlencoded 1018 *

Кроме того, можно ли отправить некоторые параметры, закодированные в URL, а некоторые данные в json?

Ответы [ 3 ]

25 голосов
/ 03 ноября 2012

Похоже, что люди ответили на первую часть вашего вопроса (используйте application / json).

Для второй части: отправка параметров запроса в HTTP-запросе POST совершенно законна.

Пример:

POST /members?id=1234 HTTP/1.1
Host: www.example.com
Content-Type: application/json

{"email":"user@example.com"}

Параметры запроса обычно используются в запросе POST для ссылки на существующий ресурс. Приведенный выше пример обновит адрес электронной почты существующего участника с идентификатором 1234.

5 голосов
/ 03 августа 2012

Я удивлялся тому же. По сути, кажется, что спецификация html имеет разные типы контента для html и данных формы. Json имеет только один тип контента.

Согласно спецификации, POST данных json должен иметь тип содержимого:
применение / JSON

Соответствующая часть спецификации HTML

6.7 Типы контента (типы MIME)
...
Примеры типов контента включают «text / html», «image / png», «image / gif», «video / mpeg», "text / css" и "Аудио / базовый".

17.13.4 Типы содержимого форм
...
application / x-www-form-urlencoded
Это тип содержимого по умолчанию. Формы, представленные с этим содержанием тип должен быть закодирован следующим образом

Соответствующая часть спецификации JSON

  1. Соображения IANA
    Тип носителя MIME для текста JSON: application / json.
3 голосов
/ 22 ноября 2010
multipart/form-data

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...