ホームページ >バックエンド開発 >PHPチュートリアル >Android クライアントと PHP バックエンド間の通信
Android クライアントは http プロトコルを使用し、post メソッドを使用して php バックグラウンド ファイルにアクセスし、データを送信します。データは key1=value1&key2=value2 メソッドの文字列ですが、バックグラウンドは $ を使用してデータを取得できません。 _POSTメソッド。 $_SERVER を出力し、配列内の HTTP_DATA 要素の値が POST からのネイティブ データであることを確認します。値の取得には $_SERVER['HTTP_DATA'] が使用されます。 PHP5.6 バージョンより前は、$HTTP_RAW_POST_DATA を使用してネイティブ POST データを取得できましたが、バージョン 5.6 ではこの方法を放棄し、より適切な file_get_contents("php://input") を使用してネイティブ データを取得しました。 $_POST を通信に使用する理由と、POST で渡された値が取得できない理由をお聞きしてもよいでしょうか?
欠落している Content-Type: application/x-www-form-urlencoded ヘッダー
そのため、php はこれを事前解析後のものとして扱いません
実際のアプリケーションでは、対応する処理は の値に基づいて実行される必要があります。 $_SERVER['REQUEST_METHOD']
$_POST が空かどうかを直接判断することもできます
もちろん、file_get_contents("php://input") の後、parse_str は破棄され、php によって解析されます
Content-Type: application/x-www-form-urlencoded ヘッダー
がないため、php は事後事前解析として使用されません
実際のアプリケーションでは、$_SERVER['REQUEST_METHOD'] の値に基づいている必要があります。対応する処理を実行します
$_POST が空かどうかを直接判断することもできます
もちろん、file_get_contents("php:/ /input")、parse_str が破棄され、php が解析されます
はい、このヘッダーは post メソッドでデータを渡すときに必要です
開発にどのツールを使用しているかわかりませんが、なぜ自動的に追加されないのですか
はい、このヘッダーは post メソッドでデータを渡すときに必要です
開発にどのツールを使用しているかわかりませんが、なぜ自動的に追加されないのですか