ホームページ >バックエンド開発 >PHPチュートリアル >PHP で JSON POST リクエストの本文を読み取る方法は?

PHP で JSON POST リクエストの本文を読み取る方法は?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-15 01:55:12792ブラウズ

How to Read the Body of a JSON POST Request in PHP?

PHP での JSON POST リクエストの本文の読み取り

はじめに

この記事では、取得と解析のトピックを扱います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);

追加メモ

  • 受信側から 'Content-Type: application/json' ヘッダーのインスタンスを 1 つ削除します
  • 送信側スクリプトが有効な JSON を送信していることを確認してください。 string.
  • Postman や Insomnia などのツールを使用して、テスト目的で JSON POST リクエストを簡単に送信できます。

以上がPHP で JSON POST リクエストの本文を読み取る方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。