亚洲免费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ù)挖掘。

        国产无遮挡又爽又刺激的视频老师 | 精品高朝久久久久9999| 少妇私密会所按摩到高潮呻吟| 99在线播放视频| 亚洲一区二区三在线播放| 偷拍综合在线视频二区日韩| 久久天天躁狠狠躁夜夜avapp | 久久精品性无码一区二区爱爱| 国产午夜在线观看视频| 亚洲深深色噜噜狠狠网站| 天天躁日日躁狠狠躁av| 国产亚洲精品福利在线| 中国黄色偷拍视频二区| 日本真人边吃奶边做爽动态图| 日韩电影一区二区三区| 亚洲国产欧美久久香综合| 国产高清在线精品一区二区三区| 看久久久久久a级毛片| 久久精品久久久久观看99水蜜桃| 校花高潮一区日韩| 精品人妻69一区二区三区蜜桃| 亚洲热妇无码av在线播放| 五月天综合网站| 一区二区三区在线观看高清视频| 久久天天躁狠狠躁夜夜av浪潮| 300部国产真实乱| 国产91在线|亚洲| 国产精品一区二区久久久av| 99久久精品费精品国产一区二| 日韩在线看片免费人成视频| 91九色国产在线观看| 日本真人添下面视频免费| 国产女女精品视频久热视频| 国产在线高清无码不卡| 国产精品国三级国产a| 国产成人精品123区免费视频| 欧洲亚洲视频免费| 丝袜美腿诱惑区在线播放| 午夜福利理论片在线观看| 欧美人妻日韩精品| 亚洲精品av一区二区日韩|