Была одна задача по интеграции сервиса pipedrive.com с protemos.com, где с первой получаю данные по сделке и отправляю во второй сервис.
Данные json с pipedrive.com отправляются методом POST на мой скрипт который уже после обработок отправляет дальше в protemos.com.
Прикол в том, что я ожидаю их получить в переменной $_POST, но их там нет, и техподдержка уверяет что данные уходят и доказывают это.
В принимающий скрипт добавил логирование глобальных массивов $_REQUEST, $_POST, $_GET
Ни в одном из массивов данных нет, хотя есть запись что $_REQUEST и $_POST приняли запрос но массив пустой.
Что за хрень???
Решение, получения данных json в POST запросе
После некоторого времени поиска решения, нашел в документации по $_POST, что в массив данные могут и не попадать если они отправлены не через форму, и для этого надо использовать инструкцию php://input
Пример получения данных json в POST запросе
<?php
// Get the JSON contents
$json = file_get_contents('php://input');
// decode the json data
$data = json_decode($json);
?>
Обратите внимание, в коде нет даже упоминания о $_POST


