curl を使用した PHP への JSON の投稿: 失われたリンクの解明
PHP での JSON データ送信にcurl post コマンドを利用しようとすると、 POST データの PHP 解釈として空の配列の問題が発生する可能性があります。これを解決するには、コマンド構造を変更することが秘訣です。
誤解に対処する
デフォルトでは、curl の -d パラメータはフォーム エンコードされたデータを期待します。 JSON コンテンツを正しく解釈するように PHP に指示するには、-H パラメーターを導入する必要があります。正しいコマンド構文は次のとおりです。
curl -v -H "Content-Type: application/json" -X POST -d '{"screencast":{"subject":"tools"}}' \ http://localhost:3570/index.php/trainingServer/screencast.json
-H パラメーターに「Content-Type: application/json」を指定することで、POST データが JSON 形式であることが PHP に通知されます。これにより、PHP は JSON オブジェクトを適切に解析して処理し、「tools」値を「subject」プロパティに割り当てることができます。
応答例
変更されたコマンドの実行時、PHP サーバーからの応答には正しく解釈された JSON データが反映されるようになり、空の配列:
HTTP/1.1 200 OK Date: Fri, 01 May 2009 22:03:00 GMT Server: Apache/2.2.8 (Win32) PHP/5.2.6 Content-Type: application/json; charset=utf-8 { "screencast": { "id": null, "subject": "tools", "body": null, "dataUrl": null, "dataMedium": null, "createdOn": null, "author": null } }
以上がcURL を使用して JSON データを PHP サーバーに適切にポストするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。