У меня есть вызов cURL в скрипте PHP 7.2, запущенном в CentOS 7, который передает пустые данные в конечную точку. При диагностике проблемы я попытался воспроизвести проблему, используя cURL в командной строке, а не код PHP. Вот команда, которую я выполняю (мне сказали отправить Content-Length 0):
/usr/bin/curl -H "App-Key: 321321321313" -H "App-Token: 321321321312" -H "Content-Length: 0" -H "Accept: application/json" -H "Content-Type: application/json" -d '{"reportCustomFields":[{"label":"THIS","value":"THAT","shown":true},{"label":"UP","value":"DOWN","shown":true}]}' "https://url.here/endpoint_debug.php"
В сценарии конечной точки я печатаю поток ввода.
$data = file_get_contents('php://input');
print "HEADERS:\n\n";
print_r(apache_request_headers()) . "\n\n";
print "RAW Data:\n\n";
print "'" . $data . "'\n\n";
Независимо от того, что я сделал, переменная $data
всегда пуста. Результат, который я вижу, всегда «». Я также попытался отправить его на https://webhook.site/, и это также показывает, что «значения формы» пусты.
Я пробовал с -X POST
и без. Я попытался изменить порядок вызовов, чтобы URL был перед переключателем data (-d). Я также попробовал --data
.
В чем может быть проблема? Я повторил это на 2 разных серверах, вызывающих одну и ту же конечную точку. Другой код в том же проекте правильно обрабатывает file_get_contents('php://input')
, так что я не думаю, что это все.
Будем благодарны за любые указания!