Android之Http網路編程(二)

來源:互聯網
上載者:User

標籤: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網路編程(二)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.