Я пытаюсь выполнить POST некоторые данные JSON, используя cURL, но у меня проблема с настройкой заголовков.POSTING JSON данные с cURL в PHP 5
Мой текущий код выглядит так:
$ch = curl_init('https://secure.example.com');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/json',
'Content-Length: ' . strlen($data_string)
]);
if (!$result = curl_exec($ch))
{
echo 'Failed: ' . curl_error($ch);
curl_close($ch);
die;
}
curl_close($ch);
Этот код прекрасно работает при тестировании с использованием Localhost (PHP 7). Однако на нашем веб-сервере работает только PHP 5, и поэтому опция CURLOPT_HTTPHEADER
не поддерживается.
Когда я сохраняю его в своем коде, я получаю «Внутреннюю ошибку 500». Когда я его вынимаю, мой curl_exec()
не запускается, и я получил сообщение об ошибке «Failed:», но без отображения curl_error()
.
Есть ли способ установить cURL, чтобы ожидать данных JSON без этой опции?
Какая версия cURL у вас есть на веб-сервере? – apokryfos
, если вы получите 500, вы загляните в журнал ошибок сервера для получения более подробной информации. –
На самом деле, оператор * 'CURLOPT_HTTPHEADER' не поддерживается в PHP 5 * является ложным. – apokryfos