一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

HTTPClient模塊的HttpGet和HttpPost

 蹇勝雄 2015-07-30

        Android SDK集成了Apache HttpClient模塊。要注意的是,這里的Apache HttpClient模塊是

HttpClient 4.0(org.apache.http.*),而不是常見(jiàn)的Jakarta Commons HttpClient 3.x

(org.apache.commons.httpclient.*)。

           HttpClient常用HttpGet和HttpPost這兩個(gè)類,分別對(duì)應(yīng)Get方式和Post方式。


           無(wú)論是使用HttpGet,還是使用HttpPost,都必須通過(guò)如下3步來(lái)訪問(wèn)HTTP資源。


           1.創(chuàng)建HttpGetHttpPost對(duì)象,將要請(qǐng)求的URL通過(guò)構(gòu)造方法傳入HttpGetHttpPost對(duì)象。

           2.使用DefaultHttpClient類的execute方法發(fā)送HTTP GETHTTP POST請(qǐng)求,并返回HttpResponse對(duì)象。

           3.通過(guò)HttpResponse接口的getEntity方法返回響應(yīng)信息,并進(jìn)行相應(yīng)的處理。

           如果使用HttpPost方法提交HTTP POST請(qǐng)求,則需要使用HttpPost類的setEntity方法設(shè)置請(qǐng)求參數(shù)。參數(shù)則必須用NameValuePair[]數(shù)組存儲(chǔ)。

           [java] view plaincopy在CODE上查看代碼片派生到我的代碼片

  1.  public String doGet()  
  2.     {  
  3.         String uriAPI = "http://XXXXX?str=I+am+get+String";  
  4.         String result= "";  
  5. //      HttpGet httpRequst = new HttpGet(URI uri);  
  6. //      HttpGet httpRequst = new HttpGet(String uri);  
  7. //      創(chuàng)建HttpGet或HttpPost對(duì)象,將要請(qǐng)求的URL通過(guò)構(gòu)造方法傳入HttpGet或HttpPost對(duì)象。  
  8.         HttpGet httpRequst = new HttpGet(uriAPI);  
  9.   
  10. //      new DefaultHttpClient().execute(HttpUriRequst requst);  
  11.         try {  
  12.    //使用DefaultHttpClient類的execute方法發(fā)送HTTP GET請(qǐng)求,并返回HttpResponse對(duì)象。  
  13.             HttpResponse httpResponse = new DefaultHttpClient().execute(httpRequst);//其中HttpGet是HttpUriRequst的子類  
  14.             if(httpResponse.getStatusLine().getStatusCode() == 200)  
  15.             {  
  16.                 HttpEntity httpEntity = httpResponse.getEntity();  
  17.                 result = EntityUtils.toString(httpEntity);//取出應(yīng)答字符串  
  18.             // 一般來(lái)說(shuō)都要?jiǎng)h除多余的字符   
  19.                 result.replaceAll("\r""");//去掉返回結(jié)果中的"\r"字符,否則會(huì)在結(jié)果字符串后面顯示一個(gè)小方格    
  20.             }  
  21.                    else   
  22.                         httpRequst.abort();  
  23.            } catch (ClientProtocolException e) {  
  24.             // TODO Auto-generated catch block  
  25.             e.printStackTrace();  
  26.             result = e.getMessage().toString();  
  27.         } catch (IOException e) {  
  28.             // TODO Auto-generated catch block  
  29.             e.printStackTrace();  
  30.             result = e.getMessage().toString();  
  31.         }  
  32.         return result;  
  33.     }  
 如果使用HttpPost方法提交HTTP POST請(qǐng)求,則需要使用HttpPost類的setEntity方法設(shè)置請(qǐng)求參數(shù)。參數(shù)則必須用NameValuePair[]數(shù)組存儲(chǔ)。
  1. public String doPost()  
  2.     {  
  3.         String uriAPI = "http://XXXXXX";//Post方式?jīng)]有參數(shù)在這里  
  4.         String result = "";  
  5.         HttpPost httpRequst = new HttpPost(uriAPI);//創(chuàng)建HttpPost對(duì)象  
  6.           
  7.         List <NameValuePair> params = new ArrayList<NameValuePair>();  
  8.         params.add(new BasicNameValuePair("str""I am Post String"));  
  9.           
  10.         try {  
  11.             httpRequst.setEntity(new UrlEncodedFormEntity(params,HTTP.UTF_8));  
  12.             HttpResponse httpResponse = new DefaultHttpClient().execute(httpRequst);  
  13.             if(httpResponse.getStatusLine().getStatusCode() == 200)  
  14.             {  
  15.                 HttpEntity httpEntity = httpResponse.getEntity();  
  16.                 result = EntityUtils.toString(httpEntity);//取出應(yīng)答字符串  
  17.             }  
  18.         } catch (UnsupportedEncodingException e) {  
  19.             // TODO Auto-generated catch block  
  20.             e.printStackTrace();  
  21.             result = e.getMessage().toString();  
  22.         }  
  23.         catch (ClientProtocolException e) {  
  24.             // TODO Auto-generated catch block  
  25.             e.printStackTrace();  
  26.             result = e.getMessage().toString();  
  27.         }  
  28.         catch (IOException e) {  
  29.             // TODO Auto-generated catch block  
  30.             e.printStackTrace();  
  31.             result = e.getMessage().toString();  
  32.         }  
  33.         return result;  
  34.     }  
以發(fā)送連接請(qǐng)求時(shí),需要設(shè)置鏈接超時(shí)和請(qǐng)求超時(shí)等參數(shù),否則會(huì)長(zhǎng)期停止或者崩潰。
  1. HttpParams httpParameters = new BasicHttpParams();  
  2. HttpConnectionParams.setConnectionTimeout(httpParameters, 10*1000);//設(shè)置請(qǐng)求超時(shí)10秒  
  3. HttpConnectionParams.setSoTimeout(httpParameters, 10*1000); //設(shè)置等待數(shù)據(jù)超時(shí)10秒  
  4. HttpConnectionParams.setSocketBufferSize(params, 8192);  
  5. HttpClient httpclient = new DefaultHttpClient(httpParameters); //此時(shí)構(gòu)造DefaultHttpClient時(shí)將參數(shù)傳入  
  6.   
  7.   
  8.   
  9. 由于是聯(lián)網(wǎng),在AndroidManifest.xml中添加網(wǎng)絡(luò)連接的權(quán)限  
  10. <uses-permission android:name="android.permission.INTERNET"/>  

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    国产在线观看不卡一区二区| 日韩aa一区二区三区| 国产精品二区三区免费播放心| 亚洲专区中文字幕视频| 久久精品国产一区久久久| 深夜少妇一区二区三区| 欧美黄色成人真人视频| 久草精品视频精品视频精品| 真实国产乱子伦对白视频不卡| 亚洲精品中文字幕熟女| 四季av一区二区播放| 午夜亚洲精品理论片在线观看| 色综合伊人天天综合网中文 | 最近中文字幕高清中文字幕无| 精品亚洲香蕉久久综合网| 久久大香蕉一区二区三区| 亚洲中文字幕人妻系列| 日韩av亚洲一区二区三区| 亚洲天堂精品一区二区| 日韩夫妻午夜性生活视频| 久久福利视频视频一区二区| 国产欧美日产久久婷婷| 正在播放国产又粗又长| 国产精品欧美激情在线播放| 精品一区二区三区中文字幕| 一区二区三区在线不卡免费| 日韩欧美综合中文字幕| 中文字幕日韩无套内射| 又黄又硬又爽又色的视频| 亚洲欧洲成人精品香蕉网| 国产精品欧美一级免费| 亚洲一区二区三区av高清| 欧美尤物在线视频91| 欧美欧美欧美欧美一区| 欧美日韩亚洲国产av| 麻豆印象传媒在线观看| 国产人妻熟女高跟丝袜| 国产福利一区二区久久| 色一情一伦一区二区三| 人妻少妇av中文字幕乱码高清| 扒开腿狂躁女人爽出白浆av|