亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        Android提交數(shù)據(jù)到服務(wù)器的幾種方式

        2015-04-29 00:00:00任星瑜
        科技創(chuàng)新與應(yīng)用 2015年24期

        摘 要:在Android應(yīng)用程序開發(fā)中,經(jīng)常要提交數(shù)據(jù)到服務(wù)器,并從服務(wù)器獲取數(shù)據(jù)。文章主要介紹基于http協(xié)議提交數(shù)據(jù)到服務(wù)器,采用HttpClient提交數(shù)據(jù)到服務(wù)器,以及采用異步AsyncHttpClient框架提交數(shù)據(jù)到服務(wù)器。

        關(guān)鍵詞:Http;HttpClient;AsyncHttpClient

        在以http協(xié)議提交數(shù)據(jù)到服務(wù)器時(shí),最常用的就是GET和POST方式。GET方式會把用戶提交的數(shù)據(jù)添加到URL字符串的后面,這種方式提交數(shù)據(jù),不安全,且不能提交大量的數(shù)據(jù)。采用POST方式提交數(shù)據(jù)時(shí),則是把用戶提交的數(shù)據(jù)放在Http請求的數(shù)據(jù)體中,這種方式相對安全且能提交大量的數(shù)據(jù)。

        采用Get方式提交數(shù)據(jù)到服務(wù)器示例代碼如下:

        String path=\"192.168.0.100/web/LoginServer?name+\"+name;//定義提交的路徑,并向服務(wù)器提交一個(gè)名稱為name的字段。服務(wù)器應(yīng)有接受該字段的處理程序。注意的是path路徑不能寫成localhost或127.0.0.1,因?yàn)閍ndroid系統(tǒng)本身也是一個(gè)操作系統(tǒng),如果這樣寫,會指向模擬器本身

        URL url=new URL(path);//把path封裝成URL對象

        HttpURLConnection conn=(HttpURLConnection) url.openConnection();//建立連接

        conn.setRequestMethod(\"GET\");//設(shè)置請求方式為GET

        采用POST方式提交數(shù)據(jù)到服務(wù)器示例代碼如下:

        String path=\"http://10.6.161.24:8080/web/LoginServlet\";//定義提交路徑

        URL url=new URL(path);

        HttpURLConnection conn = (HttpURLConnection) url.openConnection();

        conn.setRequestMethod(\"POST\");//設(shè)置請求方式為POST

        String date=\"name=\"+URLEncoder.encode(name);//準(zhǔn)備數(shù)據(jù)

        conn.setRequestProperty(\"Content-Type\", \"application/x-www-form-urlencoded\");//設(shè)置請求數(shù)據(jù)類型

        conn.setRequestProperty(\"Content-Length\", date.length()+\"\");//設(shè)置請求數(shù)據(jù)的長度

        conn.setDoOutput(true);//允許向服務(wù)器寫數(shù)據(jù)

        OutputStream os=conn.getOutputStream();//獲得輸出流

        os.write(date.getBytes());//寫數(shù)據(jù)

        HttpClient是向服務(wù)器交互的一個(gè)開源框架,google工程師也覺得該框架非常好用,所以把該框架直接集成到了android的SDK中,可以直接拿來用。用該框架向服務(wù)器提交數(shù)據(jù)的方式類似于我們用瀏覽器上網(wǎng),第一步先打開瀏覽器,第二步輸入地址,第三步敲擊回車。

        采用HttpClient框架利用Get方式提交數(shù)據(jù)到服務(wù)器實(shí)例代碼如下:

        HttpClient client=new DefaultHttpClient();//獲取HttpClient對象,類似與打開瀏覽器

        String path=\"192.168.0.100/web/LoginServer?name+\"+name;

        HttpGet httpGet=new HttpGet(path);//獲取HttpGet對象,采用get方式提交,類似于輸入地址

        HttpResponse response=client.execute(httpGet);//提交數(shù)據(jù),類似于敲擊回車。

        采用HttpClient框架利用Post方式提交數(shù)據(jù)到服務(wù)器實(shí)例代碼如下:

        HttpClient client=new DefaultHttpClient();

        String path=\"http://10.6.161.24:8080/web/LoginServlet\";

        HttpPost post=new HttpPost(path);//獲取HttpPost對象,采用Post方式提交

        List parameters=new ArrayList();//封裝要提交的數(shù)據(jù)

        parameters.add(new BasicNameValuePair(\"name\", name));

        post.setEntity(new UrlEncodedFormEntity(parameters,));//設(shè)置要提交的數(shù)據(jù)

        HttpResponse response=client.execute(post);

        AsyncHttpClient是向服務(wù)器提交數(shù)據(jù)的另外一個(gè)框架,該框架是基于回掉機(jī)制的。采用異步提交的方式提交數(shù)據(jù)。在采用http協(xié)議或HttpClient框架提交數(shù)據(jù)的時(shí)候,由于連接服務(wù)器可能是非常耗時(shí)的操作,所以需要把連接服務(wù)器的代碼放在子線程中。而采用AsyncHttpClient方式時(shí)不用擔(dān)心這個(gè)問題。

        采用AsyncHttpClient框架利用Get方式提交數(shù)據(jù)到服務(wù)器實(shí)例代碼如下:

        AsyncHttpClient client=new AsyncHttpClient();//建立AsyncHtt

        pClient的對象

        String path=\"http://10.6.161.24:8080/web/LoginServlet?name=\"+name;//定義提交路徑

        client.get(path, new AsyncHttpResponseHandler() {

        public void onSuccess(int arg0, Header[] arg1, byte[] arg2) {

        //請求成功的處理代碼

        };

        public void onFailure(int arg0, Header[] arg1, byte[] arg2, Throwable arg3) {

        //請求失敗的處理代碼

        };

        }

        采用AsyncHttpClient框架利用Post方式提交數(shù)據(jù)到服務(wù)器實(shí)例代碼如下:

        AsyncHttpClient client=new AsyncHttpClient();//建立AsyncHtt

        pClient的對象

        String path=\"http://10.6.161.24:8080/web/LoginServlet\";//定義提交路徑

        RequestParams params=new RequestParams();

        params.put(\"name\", name);

        client.get(path, new AsyncHttpResponseHandler() {

        public void onSuccess(int arg0, Header[] arg1, byte[] arg2) {

        //請求成功的處理代碼

        };

        public void onFailure(int arg0, Header[] arg1, byte[] arg2, Throwable arg3) {

        //請求失敗的處理代碼

        };

        }

        從以上三種提交數(shù)據(jù)到服務(wù)器的方式不難看出,編程方式變得越來越簡單。其實(shí)HttpClient是對采用Http協(xié)議的封裝,而AsyncHttpClient又是對HttpClient的封裝。

        參考文獻(xiàn)

        [1]明日科技.Android從入門到精通[M].清華大學(xué)出版社,2012(9).

        [2]張余.Android網(wǎng)絡(luò)開發(fā)從入門到精通[M].清華大學(xué)出版社,2014(1).

        [3]李剛.瘋狂Android講義(第二版)[M].電子工業(yè)出版社,2013(3).

        作者簡介:任星瑜,男,四川達(dá)州人,目前就讀于西北民族大學(xué),本科學(xué)歷,主要研究大數(shù)據(jù),物聯(lián)網(wǎng),數(shù)據(jù)挖掘。

        99国产免费热播视频| 人妻少妇精品久久久久久| 欧美乱人伦人妻中文字幕| 日日摸夜夜添狠狠添欧美| 狠狠色成人综合网| 99国产免费热播视频| 免费观看在线视频一区| 在线观看亚洲av每日更新影片| 激情综合色综合啪啪开心| 亚洲色成人网站www永久| 激情97综合亚洲色婷婷五| 亚洲αv在线精品糸列| 少妇下面好紧好多水真爽| 大学生高潮无套内谢视频| 国产精品视频一区二区三区四| 亚洲AV无码一区二区三区少妇av | 三年的高清电影免费看| 人妻无码中文字幕免费视频蜜桃 | 亲子乱aⅴ一区二区三区下载| 久久久亚洲精品蜜桃臀| 91色综合久久熟女系列| 欧美成人精品a∨在线观看| 精品性高朝久久久久久久| 色综合久久久久综合一本到桃花网| 亚洲中文字幕乱码一二三| 国产精品久久久久9999吃药| 93精91精品国产综合久久香蕉| 久久国产精品一区二区| 国产精品国产三级国产专播下| 欧美人和黑人牲交网站上线| 在线观看国产一区亚洲bd | 人成在线免费视频网站| 亚洲h在线播放在线观看h| 午夜无码一区二区三区在线| 青青草手机在线免费视频| 国产亚洲成av人片在线观黄桃| 日本精品一区二区三区在线视频| 91蜜桃国产成人精品区在线| 日韩av精品视频在线观看| 一本一道av无码中文字幕| 亚洲AV无码一区二区一二区色戒 |