標籤:android style blog http color io os 使用 ar
上一篇文章簡單的介紹了Android中http的兩種通訊方式,並且分別用擷取百度網頁做了執行個體。但是在實際應用中,更多的是用戶端通過請求的參數來實現在服務端的具體操作,並最終返回資料給用戶端。因為我們不可能對用戶端的每一個需要網路請求的操作都單獨的設定一個不變的網路地址。
(因為我是從.net轉過來的還沒真正學過java web,所以web方面的代碼比較簡單,大家見諒。)
下面我們來做一個簡單的小例子:(簡單的使用者登入)
這裡我們會使用到tomcat,以及Genimotion擷取本地IP的方法。對此完全不熟悉的童鞋請看另一篇部落格《Android中Tomcat的簡單配置和使用》。
首先我們需要完成一個伺服器端的代碼:
<%@ page contentType="text/html; charset=GBK" language="java"%><% String param; param = request.getParameter("param"); if (!"".equals(param)||param!=null) { if("get".equals(param)){ out.println("發送GET請求成功"); }else if("post".equals(param)){ String content=request.getParameter("content"); String nickname=request.getParameter("nickname"); if(content!=null&&nickname!=null){ nickname=new String(nickname.getBytes("iso-8859-1"),"utf-8"); content=new String(content.getBytes("iso-8859-1"),"utf-8"); if(nickname.equals("admin")&&content.equals("123456")){ out.println("登陸成功!"); } } } }%>
我把這個檔案取名為test.jsp,並放在Tomcat的指定的路徑下,以便使用Tomcat當作伺服器運行test.jsp。
注意:我這裡返回的資料是GBK,不是utf-8。
接下來,我們來完成Android用戶端的代碼:
我們在這裡使用HttpClient的使用方式:
/** * 表單請求實現登入 */ public void testParamsHtppClient() { new Thread(new Runnable() { int i = 0; private String str; @Override public void run() { HttpClient client = new DefaultHttpClient(); //設定路徑 HttpPost request = new HttpPost("http://192.168.1.100:8080/mytest/test.jsp"); HttpResponse response; //設定表單 List<NameValuePair> params=new ArrayList<NameValuePair>(); params.add(new BasicNameValuePair("param", "post"));//請求方式 params.add(new BasicNameValuePair("nickname", "admin"));//使用者名稱 params.add(new BasicNameValuePair("content", "123456"));//密碼 try { request.setEntity(new UrlEncodedFormEntity(params, "utf-8"));//設定編碼方式 response = client.execute(request); if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { str = EntityUtils.toString(response.getEntity()).trim(); }else{ str="請求失敗"; } System.out.println(str);//列印返回結果 } catch (ClientProtocolException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }).start(); }
開啟Tomcat伺服器,將上面的方法寫入Activity的onCreate()方法中。(建立Activity即執行)
運行結果如下:
OK,一個小小的與伺服器有參數互動的小例子就寫完成。相信學過java web的童鞋能比我寫得更出色!這樣,至少與伺服器互動這塊,我們可以通過自己寫一些簡單的代碼來實現,不再束縛於學校沒有專門針對的學生聯絡的伺服器了。
不知不覺就到了淩晨,首先祝福我們偉大的祖國母親生日快樂!!!
DEMO下載:http://download.csdn.net/detail/af74776/7994837
Android之Http網路編程(二)