はじめに
この記事では、取得と解析のトピックを扱いますPHP での JSON POST リクエスト。これは、JSON 形式でデータを転送する Web サービスや API を操作する場合に特に役立ちます。
問題の特定
コンテンツ タイプのアプリケーションを使用する場合/ POST リクエストの場合、$_POST などの従来のメソッドではデータは取得されません。これは、これらのメソッドがリクエスト本文が application/x-www-form-urlencoded データの形式であることを想定しているためです。
解決策: File_get_contents('php://input')
この問題を解決するために、PHP は file_get_contents('php://input') 関数を提供します。これにより、受信した生データを読み取ることができます。リクエストの本文。この生データは、JSON デコード関数を使用して解析できます。
更新コード
送信者 (CURL)
$ch = curl_init('http://webservice.local/'); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json', 'Content-Length: ' . strlen(json_encode($data)) )); $result = curl_exec($ch); $result = json_decode($result); var_dump($result);
受信機(PHP)
$json = file_get_contents('php://input'); $obj = json_decode($json, TRUE);
追加メモ
以上がPHP で JSON POST リクエストの本文を読み取る方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。