ホームページ > バックエンド開発 > PHPチュートリアル > cURL POST JSON データが PHP で空として解釈されるのはなぜですか?

cURL POST JSON データが PHP で空として解釈されるのはなぜですか?

DDD
リリース: 2024-11-19 03:34:02
オリジナル
569 人が閲覧しました

Why is my cURL POST JSON data interpreted as empty in PHP?

cURL を使用した PHP への JSON の投稿: データ解釈に関する問題

リセス PHP フレームワーク内で cURL POST コマンドを実行しようとした場合、ユーザーは投稿されたデータを解釈する際に問題が発生しました。具体的には、POST パラメータ -d が期待どおりに認識されず、空の配列が生成されました。

問題ステートメント

ユーザーが cURL コマンドを使用しようとしました:

curl -i -X POST -d '{"screencast":{"subject":"tools"}}'  \         
http://localhost:3570/index.php/trainingServer/screencast.json
ログイン後にコピー

Windows (PHP 5.2) と Linux (同じ PHP バージョン) の両方でコマンドを実行したにもかかわらず、 POST データが正しく解釈されませんでした。以下に示すように、サーバーの応答は空の「スクリーンキャスト」配列を示しました。

{"screencast":{"id":null,"subject":null,"body":null,
         "dataUrl":null,"dataMedium":null,"createdOn":null,"author":null}}
ログイン後にコピー

解決策

この問題は、-d パラメータで指定されているという cURL のデフォルトの仮定に起因しています。フォームエンコードされたデータ。これを解決するには、-H パラメータを使用して Content-Type を JSON として指定する必要があります。

curl -v -H "Content-Type: application/json" -X POST -d '{"screencast":{"subject":"tools"}}' \
http://localhost:3570/index.php/trainingServer/screencast.json
ログイン後にコピー

この変更により、cURL はポストされた JSON データを正しく解釈し、POST 操作が成功しました。

以上がcURL POST JSON データが PHP で空として解釈されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート