ホームページ  >  記事  >  バックエンド開発  >  Android クライアントと PHP バックエンド間の通信

Android クライアントと PHP バックエンド間の通信

WBOY
WBOYオリジナル
2016-06-20 12:42:451138ブラウズ

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 が解析されます



まあ、file_get_contents("php://input") の後に parse_str で値を取得し、Content-Type: application/x を取得します。 -www-form-urlencoded ヘッダーは、Android クライアントが書き込むときに追加されますか?

はい、このヘッダーは post メソッドでデータを渡すときに必要です

開発にどのツールを使用しているかわかりませんが、なぜ自動的に追加されないのですか

はい、このヘッダーは post メソッドでデータを渡すときに必要です

開発にどのツールを使用しているかわかりませんが、なぜ自動的に追加されないのですか



必要ですわかりませんが、私はバックエンドで作業しており、クライアントはゲームによって作成されており、Eliscpe を使用していると思います。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。