歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Android Tomcat 的應用之客戶端部分

最近因為做一個客戶端的登錄部分,最後選擇了使用Tomcat作為servlet服務器,MySQL作為數據庫,今天就先寫了一下客戶端的部分,主要就是Android的網絡編程部分,服務器端編程明天再寫吧,今天有點累了。

相關閱讀:Android Tomcat 的應用之服務器部分 http://www.linuxidc.com/Linux/2012-03/55916.htm

首先是布局文件,如下:

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:layout_width="fill_parent"  
  4.     android:layout_height="fill_parent"  
  5.     android:orientation="vertical" >  
  6.   
  7.     <TextView  
  8.         android:layout_width="fill_parent"  
  9.         android:layout_height="wrap_content"  
  10.         android:text="@string/hello" />  
  11.   
  12.     <TableLayout >  
  13.         <TableRow >  
  14.             <TextView   
  15.                 android:id="@+id/tv_name"  
  16.                 android:layout_width="wrap_content"  
  17.                 android:layout_height="wrap_content"  
  18.                 android:text="@string/nameStr"/>  
  19.             <EditText   
  20.                 android:id="@+id/et_name"  
  21.                 android:layout_width="fill_parent"  
  22.                 android:layout_height="wrap_content"/>  
  23.         </TableRow>  
  24.         <TableRow >  
  25.             <TextView   
  26.                 android:id="@+id/tv_passwd"  
  27.                 android:layout_width="wrap_content"  
  28.                 android:layout_height="wrap_content"  
  29.                 android:text="@string/passwdStr"/>  
  30.             <EditText   
  31.                 android:id="@+id/et_passwd"  
  32.                 android:layout_width="fill_parent"  
  33.                 android:layout_height="wrap_content"  
  34.                 android:password="true"/>  
  35.         </TableRow>  
  36.         <TableRow >  
  37.             <Button   
  38.                 android:id="@+id/btn_confirm"  
  39.                 android:layout_width="wrap_content"  
  40.                 android:layout_height="wrap_content"  
  41.                 android:text="@string/btn_confirm"/>  
  42.             <Button   
  43.                 android:id="@+id/btn_cancel"  
  44.                 android:layout_width="wrap_content"  
  45.                 android:layout_height="wrap_content"  
  46.                 android:text="@string/btn_cancel"/>  
  47.         </TableRow>  
  48.     </TableLayout>  
  49.       
  50. </LinearLayout>  

然後就是進行網絡編程部分了,肯定是要用到post方式,這個部分就做一個單獨的工具類,大家看一下就明白:

  1. package com.chenlong12580.app.tomcat;  
  2.   
  3. import java.io.IOException;  
  4.   
  5. import org.apache.http.HttpResponse;  
  6. import org.apache.http.client.ClientProtocolException;  
  7. import org.apache.http.client.methods.HttpGet;  
  8. import org.apache.http.client.methods.HttpPost;  
  9. import org.apache.http.impl.client.DefaultHttpClient;  
  10. import org.apache.http.util.EntityUtils;  
  11.   
  12. public class HttpUtil {  
  13.     // 基礎URL   
  14.     public static final String BASE_URL="http://222.20.60.132:8080/WebRoot/";  
  15.     // 獲得Get請求對象request   
  16.     public static HttpGet getHttpGet(String url){  
  17.         HttpGet request = new HttpGet(url);  
  18.          return request;  
  19.     }  
  20.     // 獲得Post請求對象request   
  21.     public static HttpPost getHttpPost(String url){  
  22.          HttpPost request = new HttpPost(url);  
  23.          return request;  
  24.     }  
  25.     // 根據請求獲得響應對象response   
  26.     public static HttpResponse getHttpResponse(HttpGet request) throws ClientProtocolException, IOException{  
  27.         HttpResponse response = new DefaultHttpClient().execute(request);  
  28.         return response;  
  29.     }  
  30.     // 根據請求獲得響應對象response   
  31.     public static HttpResponse getHttpResponse(HttpPost request) throws ClientProtocolException, IOException{  
  32.         HttpResponse response = new DefaultHttpClient().execute(request);  
  33.         return response;  
  34.     }  
  35.       
  36.     // 發送Post請求,獲得響應查詢結果   
  37.     public static String queryStringForPost(String url){  
  38.         // 根據url獲得HttpPost對象   
  39.         HttpPost request = HttpUtil.getHttpPost(url);  
  40.         String result = null;  
  41.         try {  
  42.             // 獲得響應對象   
  43.             HttpResponse response = HttpUtil.getHttpResponse(request);  
  44.             // 判斷是否請求成功   
  45.             if(response.getStatusLine().getStatusCode()==200){  
  46.                 // 獲得響應   
  47.                 result = EntityUtils.toString(response.getEntity());  
  48.                 return result;  
  49.             }  
  50.         } catch (ClientProtocolException e) {  
  51.             e.printStackTrace();  
  52.             result = "網絡異常!";  
  53.             return result;  
  54.         } catch (IOException e) {  
  55.             e.printStackTrace();  
  56.             result = "網絡異常!";  
  57.             return result;  
  58.         }  
  59.         return null;  
  60.     }  
  61.     // 獲得響應查詢結果   
  62.     public static String queryStringForPost(HttpPost request){  
  63.         String result = null;  
  64.         try {  
  65.             // 獲得響應對象   
  66.             HttpResponse response = HttpUtil.getHttpResponse(request);  
  67.             // 判斷是否請求成功   
  68.             if(response.getStatusLine().getStatusCode()==200){  
  69.                 // 獲得響應   
  70.                 result = EntityUtils.toString(response.getEntity());  
  71.                 return result;  
  72.             }  
  73.         } catch (ClientProtocolException e) {  
  74.             e.printStackTrace();  
  75.             result = "網絡異常!";  
  76.             return result;  
  77.         } catch (IOException e) {  
  78.             e.printStackTrace();  
  79.             result = "網絡異常!";  
  80.             return result;  
  81.         }  
  82.         return null;  
  83.     }  
  84.     // 發送Get請求,獲得響應查詢結果   
  85.     public static  String queryStringForGet(String url){  
  86.         // 獲得HttpGet對象   
  87.         HttpGet request = HttpUtil.getHttpGet(url);  
  88.         String result = null;  
  89.         try {  
  90.             // 獲得響應對象   
  91.             HttpResponse response = HttpUtil.getHttpResponse(request);  
  92.             // 判斷是否請求成功   
  93.             if(response.getStatusLine().getStatusCode()==200){  
  94.                 // 獲得響應   
  95.                 result = EntityUtils.toString(response.getEntity());  
  96.                 return result;  
  97.             }  
  98.         } catch (ClientProtocolException e) {  
  99.             e.printStackTrace();  
  100.             result = "網絡異常!";  
  101.             return result;  
  102.         } catch (IOException e) {  
  103.             e.printStackTrace();  
  104.             result = "網絡異常!";  
  105.             return result;  
  106.         }  
  107.         return null;  
  108.     }  
  109. }  
Copyright © Linux教程網 All Rights Reserved