cURLを使用してJSONデータをPOSTしようとしていますが、ヘッダーの設定に問題があります。PHP 5でcURLを使用してJSONデータをPOSTする
私の現在のコードはそうのようになります。使用してローカルホスト(PHP 7)をテストするとき
$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);
このコードは正常に動作します。ただし、WebサーバーはPHP 5のみを実行するため、CURLOPT_HTTPHEADER
オプションはサポートされていません。
私のコードに保管すると、「500内部エラー」が発生します。 私が取り出したとき、curl_exec()
は実行されず、エラーメッセージ "Failed:"が表示されましたが、curl_error()
が表示されませんでした。
このオプションを使用しないとJSONデータを期待するようにcURLを設定する方法はありますか?
ウェブサーバーにはどのcURLバージョンがありますか? – apokryfos
500を取得した場合は、詳細についてはサーバーのエラーログを参照してください。 –
実際には、* CURLOPT_HTTPHEADERオプションはPHP 5ではサポートされていません。*はfalseです。 – apokryfos