ホームページ >バックエンド開発 >PHPチュートリアル >AndroidクライアントとPHPサービス間の単純な対話
ログ情報の保存を実現するための Android クライアントと php+mysql+apache 間の単純な対話。
実装原理は、Android クライアントがリクエストを送信し、それをサーバーのログ情報に渡し、サーバーがこれらを受信し、データベースに接続して保存し、保存されたステータスをクライアントに返します。
サーバー側:
まず、mysql で testlog データベースを作成します。その中には、LogCategory、System、Executor、Action およびその他の情報を記録する log_info テーブルがあります。
php 仮想ディレクトリに新しい php プロジェクト testlog を作成し、conn.php および log_deal.php ファイルを作成します。
<?php include_once('conn.php'); //echo '$_POST接收:</br>'; $System = $_POST['System']; $LogCategory = $_POST['LogCategory']; $Executor = $_POST['Executor']; $Action = $_POST['Action']; $sqlstr = "insert into log_info(System,LogCategory,Executor,Action,CreateTime) values('".$System."','".$LogCategory."','".$Executor."','".$Action."','".date('Y-m-d H:m:s')."')"; if (mysql_query($sqlstr)){ echo "succeed"; } else { die(mysql_error()); echo "error"; }?>サーバーがセットアップされました。
android クライアント:
好きなようにレイアウトを書いてOK
以下がメインコードです:
class SendlogHandler implements Runnable{ @Override public void run() { try { String url = "http://localhost/testlog/log_deal.php"; String result = null; boolean isSendSucceed = false; HttpPost httpRequest = new HttpPost(url); List params = new ArrayList(); params.add(new BasicNameValuePair("System", "系统名称")); params.add(new BasicNameValuePair("LogCategory", "LOG等级")); params.add(new BasicNameValuePair("Executor", "操作人")); params.add(new BasicNameValuePair("Action", "发生了什么事")); httpRequest.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8)); HttpResponse httpResponse = new DefaultHttpClient().execute(httpRequest); int stateCode = httpResponse.getStatusLine().getStatusCode(); if (stateCode == 200){ HttpEntity httpEntity = httpResponse.getEntity(); result = EntityUtils.toString(httpEntity); } if (result.equals("succeed")){ isSendSucceed = true; } Message msg = new Message(); msg.what = 2; msg.obj = isSendSucceed; handler.sendMessage(msg); } catch (Exception e){ e.printStackTrace(); } } }さて、シンプルなクライアントからPHPサーバー側ストレージにデータをポストする機能は完成しました。
著作権表示: この記事はブロガーによるオリジナルの記事であり、ブロガーの許可なく複製することはできません。