ホームページ > バックエンド開発 > PHPチュートリアル > PHP Web サービスで JSON POST データを読み取るにはどうすればよいですか?

PHP Web サービスで JSON POST データを読み取るにはどうすればよいですか?

Barbara Streisand
リリース: 2024-12-17 02:02:24
オリジナル
535 人が閲覧しました

How Can I Read JSON POST Data in My PHP Web Service?

PHP を使用した JSON POST の読み取り

PHP Web サービスで JSON データを読み取るのに苦労していますか?

< h3>問題

単純なフォーム データを完全に処理する Web サービスがあります。ただし、コンテンツ タイプが application/json の POST データを送信する必要がある場合、Web サービスは値を返せません。 POST 値の処理方法に関連しているのではないかと思われます。

解決策

問題は、POST データへのアクセス方法にあります。 JSON POST リクエストの場合、標準の $_POST 変数とは異なるメソッドを使用する必要があります。

JSON POST データの読み取り

POST から JSON データを読み取るにはリクエストするには、以下を使用してくださいコード:

$inputJSON = file_get_contents('php://input');
$input = json_decode($inputJSON, TRUE); // Convert JSON into an array

// Use the $input array to access your JSON data
ログイン後にコピー

CURL コードの修正

CURL リクエストでは、CURLOPT_POSTFIELDS を使用してパラメータを application/x-www- と​​してエンコードしています。フォーム URL コード化。ただし、JSON POST リクエストの場合は、JSON 形式のデータを指定する必要があります。

CURL コードを次のように変更します:

$data_string = json_encode($data);

$curl = curl_init('http://webservice.local/');
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($curl, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/json',
    'Content-Length: ' . strlen($data_string)
));
ログイン後にコピー

Web サービスを変更する

header('Content-type:アプリケーション/json'); Web サービス ページ内。複数の呼び出しがある場合、JSON 応答に干渉する可能性があります。

以上がPHP Web サービスで JSON POST データを読み取るにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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