上一篇文章我們已經講解了Android studio 通過以servlet搭建的服務器訪問 PC端 mysql數據庫 的服務器端的實現步驟和方法 。網址為:http://blog.csdn.net/snadijssajskkj/article/details/50554903本文將繼續講解客戶端(android)的實現。首先先說下幾個注意點:(類此網絡可以查看本人之前寫過的博文,http://blog.csdn.net/snadijssajskkj/article/details/50554803)1、通過httpservlet訪問網絡,需要在AndroidManifest.xml中添加網絡權限:<uses-permission android:name="android.permission.INTERNET" />
2、避免出現android.os.NetworkOnMainThreadException的異常,需要在mainactivity中的onCreate(),添加Exception();
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
public void Exception(){
StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
.detectDiskReads().detectDiskWrites().detectNetwork()
.penaltyLog().build());
StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
.detectLeakedSqlLiteObjects().detectLeakedClosableObjects()
.penaltyLog().penaltyDeath().build());
}
以上為需要注意的,現在直接講解客戶端訪問mysql數據庫代碼:
public volatile static String url1,url2,url;
//執行完query();後將result結果顯示在edittext上@$
public void query() throws IOException, ParseException {//查詢函數
url1="http://192.168.1.101:8080/webtt/HelloWorld";
//訪問服務器創建的網頁,192.168.1.101為pc的ip地址 url2="idAndstatement="+"3,關,";//傳送的字段:表示的含義為id=3,狀態為關
@$ url=url1+"?"+url2;
System.out.println("1");
HttpGet request = new HttpGet(url);//調用servlet的doget方法
System.out.println("2"); //在這裏執行請求,訪問url,並獲取響應
HttpResponse reponse =new DefaultHttpClient().execute(request);
System.out.println("3"); //獲取返回碼,等於200即表示連接成功,並獲得響應
if(reponse.getStatusLine().getStatusCode()==200){
System.out.println("4"); //獲取響應中的數據
result= EntityUtils.toString(reponse.getEntity());
System.out.println("結果為:"+result);//輸出查詢的結果
}else {
tvshow.setText("連接失敗");
System.out.println("連接失敗");
}}
@$