ホームページ >バックエンド開発 >PHPチュートリアル >Android は PHP と対話し、Android は JSON データを渡し、PHP はデータを受け入れて保存します。

Android は PHP と対話し、Android は JSON データを渡し、PHP はデータを受け入れて保存します。

WBOY
WBOYオリジナル
2016-08-08 09:23:471538ブラウズ

ユーザーが特定のクライアントを使用してログインすると、クライアントは次の 2 つのことを行います。1 つはページにジャンプし、2 つはサーバーに情報を返すことです。 、サーバーはデータをデータベースに保存します。このようにして、ユーザーの個人情報も取得されます。

これ以上遅滞なくそれを実現しましょう!

たまたま SAE クラウド Bean がまだ使い切れていないので、バックエンドとして PHP を使用する予定です。

現在、クライアントとサーバー間で Json 文字列を転送することがより一般的になっています。 (幸いなことに、私は以前に Json について学習しました)、Android はデータを Json 形式にパッケージ化し、Httpclient を通じて PHP バックエンドに送信します。PHP は属性名に基づいて Json 文字列を取得し、それを解析して、最後に保存します。 MySQL)これがプロセスです。

ステップ 1: Android クライアントは Json 形式のデータをカプセル化します

まず、送信したいデータを Json 形式のデータにカプセル化します。私は Json パッケージまたは Gson を使用します。送信するのは User オブジェクトで、コードは次のとおりです:

<span style="font-family:Microsoft YaHei;font-size:14px;">Gson gson = new Gson();
gson.toJson(user))
</span>
変換形式は非常に簡単で、あまり説明する必要はありません

ステップ 2: ログイン戻りスレッドに非同期メソッドを記述します (もちろん、いつでも非同期を呼び出します。ログイン情報が返されたときに非同期タスクをトリガーします)。 非同期タスクでは、Httpclient のメソッドを呼び出してリクエストを送信します。

<span style="font-family:Microsoft YaHei;font-size:14px;">/**
	 * 
	 * 描述 向后台发送user数据
	 * @param user
	 */
	<span style="font-family:Times New Roman;">public static void SaveDataToPhp(User user){
		Gson gson = new Gson();
		String url = "http://bmhjqs.sinaapp.com/ChzuAppDate/chzu_user_save.php";  
		HttpPost httpRequest = new HttpPost(url);  

		List<NameValuePair> params = new ArrayList<NameValuePair>();  
		params.add(new BasicNameValuePair("userJson", gson.toJson(user)));  
		try {  
			HttpEntity httpEntity = new UrlEncodedFormEntity(params,"utf-8");  
			httpRequest.setEntity(httpEntity);  
			HttpClient httpClient = new DefaultHttpClient();  
			HttpResponse httpResponse = httpClient.execute(httpRequest);  
			if(httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK){  
				String result = EntityUtils.toString(httpResponse.getEntity());  
				Log.i("save", result);
			}else{  
			}  
		} catch (UnsupportedEncodingException e) {  
			e.printStackTrace();  
		} catch (ClientProtocolException e) {  
			e.printStackTrace();  
		} catch (IOException e) {  
			e.printStackTrace();  
		}  
	}</span>
</span>
このとき、データがPHPに送信され始めます

ステップ3: Jsonデータを受信します

PHPで、パラメータKeyを介して値を取得します。コードは次のとおりです:

<span style="font-family:Microsoft YaHei;font-size:14px;">//接受客户端传来的json数据
<span style="font-family:Times New Roman;">$json_string = $_POST ["userJson"];
$user = json_decode ( $json_user );

if (ini_get ( "magic_quotes_gpc" ) == "1") {
	$json_string = stripslashes ( $json_string );
}</span>
$user = json_decode ( $json_string, true );//必须加参数‘true’,否则PHP不认为$user是个数组</span>
注意する必要があることこの時点で、array[key] メソッドを渡して値を取得できます

データを SAE の下の MySQL データベースに保存します。コードは次のとおりです:

<span style="font-family:Microsoft YaHei;font-size:14px;">// 开始保存到数据库
<span style="font-family:Times New Roman;">$link = mysql_connect ( SAE_MYSQL_HOST_M . ':' . SAE_MYSQL_PORT, SAE_MYSQL_USER, SAE_MYSQL_PASS );
if ($link) {
	mysql_select_db ( SAE_MYSQL_DB, $link );
	//根据ID判断数据库里是否存在
	$isExit = "查询语句";	
	$result = mysql_query($isExit);
	if(mysql_num_rows($result) < 1){
		$sql = "插入语句...";
		mysql_query ( 'set names utf-8' );
		mysql_query ( $sql );
		echo 'STATE_OK';
	}else{
		echo 'STATE_EXIST';
	}
	mysql_close ( $link );
} else {
	echo 'STATE_DB_FAIL';
}</span></span>
ステップ 5: テスト

テストは成功し、データは正常に保存できます。

客観的に役立つと思われる場合は、「いいね!」を押してください。 。 。もっと頑張ります

もし何か間違っていたらご指摘いただければ修正させていただきます!

上記では、Android が JSON データを送信し、PHP がそのデータを受信して​​保存する様子を紹介しました。PHP チュートリアルに興味のある友人の参考になれば幸いです。

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