ホームページ  >  記事  >  バックエンド開発  >  yii2 フレームワークでのインターフェースを介した ios 側からのデータ受信について

yii2 フレームワークでのインターフェースを介した ios 側からのデータ受信について

WBOY
WBOYオリジナル
2016-08-31 08:54:551395ブラウズ

Yii::$app->request->post(); を使用して ios からデータを受信し、受信したデータを印刷すると、値が null であることが表示されます。 $_data = empty($_POST) ? json_decode(file_get_contents('php://input'), TRUE) を使用すると、ios からデータを受け取ることで値を取得できますが、これに限ります。データが受信されない場合、ここでエラーが報告されます。データ受信の問題についてご指導ください

返信内容:

Yii::$app->request->post(); を使用して ios からデータを受信し、受信したデータを印刷すると、値が null であることが表示されます。 $_data = empty($_POST) ? json_decode(file_get_contents('php://input'), TRUE) を使用すると、ios からデータを受け取ることで値を取得できますが、これに限ります。データが受信されない場合、ここでエラーが報告されます。データ受信の問題についてご指導ください

IOSのHTTPリクエストヘッダを確認してくださいリクエストヘッダの設定に問題があるはずです 弊社のiOS子供靴リクエストインターフェースではこのようなことは起きていません

iOS がアップロードしたときに json 形式が指定されていない可能性があります。
$_SERVER['CONTENT_TYPE'] を出力して、application/json であるかどうかを確認できます。
そうでない場合は、試してみてください。 リーリー

これは、メッセージ本文を json 形式のメッセージに直接パッケージ化する、iOS によって送信されるリクエスト パッケージである必要があります。

そのため、PHP 側は file_get_contents('php://input') を使用してメッセージ本文を取得する必要があります。

以前iOSのリクエストヘッダーを作っていたので、リクエストヘッダーがちゃんと設定されているか聞いてみました

ちなみに、jsonデータを取り出す正式な方法はこうなるはずです
$body = Yii::$app->request->getRawBody ();
json_decode($body,true);

API が Yii2 フレームワークに基づいて開発されている場合、次の方法でデータを受信できます:

リクエストメソッドの取得:

リーリー

投稿リクエスト方法:

リーリー

クライアントがデータを送信するときの Content-Type が application/json の場合、config.php ファイルの request セクションで次のように設定する必要があります:

リーリー

このようにして、json形式で渡された値を正常に取得することができます。

クライアントがオブジェクトを json にシリアル化して配信する場合、次のようにオブジェクトを受信して​​データベースに保存できます:
リーリー

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