Тип «application / json» предотвращает отправку почтовых переменных

Я обнаружил, что если я попробую curl PHP POST, postvars отправляются отлично. Когда я добавлю httpheader типа content: application/json postvars больше не перейдут. Я пробовал postvars как строку JSON и как строку запроса.

Отображение кода:

 $ch = curl_init(); $post = json_encode(array('p1' => 'blahblahblah', 'p2' => json_encode(array(4,5,6)))); $arr = array(); array_push($arr, 'Content-Type: application/json; charset=utf-8'); curl_setopt($ch, CURLOPT_HTTPHEADER, $arr); curl_setopt($ch, CURLOPT_URL, 'https://example.com/file.php'); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $post); curl_exec($ch); curl_close($ch); 

Related of "Тип «application / json» предотвращает отправку почтовых переменных"

Действительная HTTP-почта, которая автоматически разбивается на массив с помощью PHP, должна быть отформатирована в парах name = value, лучший способ сделать это в PHP – это использовать функцию http_build_query.

http://ca2.php.net/manual/en/function.http-build-query.php

Существует пример, который работает в руководстве PHP с помощью curl:

http://ca2.php.net/manual/en/function.curl-exec.php#98628

Что вы делаете, это сообщение «RAW», см. Другой вопрос:

Как разместить JSON на PHP с завитой

Быстрый фрагмент, чтобы получить данные RAW Json.

 <?php print_r(json_decode(file_get_contents('php://input')));