Intereting Posts
Как настроить автозагрузчик Zend для загрузки настраиваемого пути для ресурсов до пути по умолчанию array_key_exists не работает Как сделать эти поля автопопуляцией из базы данных? Как переопределить путь PHP для использования пути MAMP? Как исправить это: «Предупреждение: mysql_num_rows () ожидает, что параметр 1 будет ресурсом, boolean задан в //"? отображать данные из базы данных в таблицу html Использование TCPDF для преобразования определенного div в PDF Как перенаправить маршрут с помощью метода контроллера Mysql шифрование / хранение конфиденциальных данных, Как сделать Drupal 7 Редактируемое поле в таблице только для администратора Поиск доступности с MySQL (и PHP)? Как я могу обмениваться данными с другого контроллера в виде laravel? Laravel Создание динамических маршрутов для контроллеров из базы данных Mysql Сессии PHP Отображать значения массива в PHP

x-www-form-urlencoded Vs json HTTP POST

Трудно решить,
в настоящее время я отправляю данные как x-www-form-urlencoded с php lib curl with

curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($this->arguments)); 

или

 curl_setopt($curl, CURLOPT_POSTFIELDS, $this->arguments); 

первый вопрос: второй, кажется, больше длины контента, первое решение, вероятно, лучше?

Это практично для плоских сообщений, таких как:

 { "name": "John", "token": "2121232145", "code": "7", "data": "Hello" } 

Но у меня также может быть поле данных, представляющее объект, в этом случае я поддерживал его, но выполнение этого (кодировка URL-кода Json) является ужасно подробными и уродливыми сообщениями,

С другой стороны я попробовал отправить его как application / json content-type

 curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($this->arguments)); 

длина контента больше для небольших сообщений, но со встроенным json, это явно лучше

Но x-www-form-urlencoded также близок к данным форм, которые мне нужно отправить, за исключением случаев, когда json встроен

Было бы не изящно иметь 2 разных метода анализа сервлетов в зависимости от типов контента, так есть ли другой вариант?

Related of "x-www-form-urlencoded Vs json HTTP POST"

Здесь вы можете прочитать подобное обсуждение форматов.

Если структура закодированных данных гарантированно будет плоским списком пар имя-значение, x-www-form-urlencoded кажется достаточным. Если структура может быть (произвольно) сложной (например, вложенные списки или ассоциативные массивы), тогда определенно используйте JSON.

Что касается меня, я специалист KISS. В вашей ситуации JSON / XML / все это дополнительные затраты времени, памяти и циклов процессора. x-www-form-urlencoded data сочетают читаемость и компактность, поэтому я могу поспорить, что это ваш выбор.

x-www-form-urlencoded и JSON – это разные вещи. Хотя x-www-form-urlencoded является просто типом контента по умолчанию, который использовался для отправки формы на сервер, JSON представляет собой текстовый и общедоступный формат (стандартный), который используется для сериализации и отправки структурированных данных по сетевому соединению. Вы не должны сравнивать их.

вторая, кажется, большая длина контента, первое решение, вероятно, лучше?

Нет, нет решения, помеченного как «лучше». Как сказал сосновый босс, действительно зависит от того, какие данные вы отправляете и как разбирать / обрабатывать. JSON отлично подходит для отправки дополнительных данных с запросом.

Не думайте о содержании. Подумайте о структуре данных и данных, которую вы хотите отправить и обработать. Если вы просто хотите отправлять и обрабатывать структурированные данные между запросами и размером данных, просто используйте JSON. Он построен для этого.

Разница между контентом между двумя методами не будет частью проблемы, поскольку ваше приложение не является Facebook, Twitter или Google, как монстр. Преждевременная оптимизация – корень всего зла.