Android HttpClient GET或者POST請(qǐng)求基本使用方法
更新時(shí)間:2012年12月11日 15:30:41 作者:
在Android開(kāi)發(fā)中我們經(jīng)常會(huì)用到網(wǎng)絡(luò)連接功能與服務(wù)器進(jìn)行數(shù)據(jù)的交互,為此Android的SDK提供了Apache的HttpClient來(lái)方便我們使用各種Http服務(wù).這里只介紹如何使用HttpClient發(fā)起GET或者POST請(qǐng)求
在Android開(kāi)發(fā)中我們經(jīng)常會(huì)用到網(wǎng)絡(luò)連接功能與服務(wù)器進(jìn)行數(shù)據(jù)的交互,為此Android的SDK提供了Apache的HttpClient來(lái)方便我們使用各種Http服務(wù)。你可以把HttpClient想象成一個(gè)瀏覽器,通過(guò)它的API我們可以很方便的發(fā)出GET,POST請(qǐng)求(當(dāng)然它的功能遠(yuǎn)不止這些)
這里只介紹如何使用HttpClient發(fā)起GET或者POST請(qǐng)求
GET 方式
//先將參數(shù)放入List,再對(duì)參數(shù)進(jìn)行URL編碼
List<BasicNameValuePair> params = new LinkedList<BasicNameValuePair>();
params.add(new BasicNameValuePair("param1", "中國(guó)"));
params.add(new BasicNameValuePair("param2", "value2"));
//對(duì)參數(shù)編碼
String param = URLEncodedUtils.format(params, "UTF-8");
//baseUrl
String baseUrl = "http://ubs.free4lab.com/php/method.php";
//將URL與參數(shù)拼接
HttpGet getMethod = new HttpGet(baseUrl + "?" + param);
HttpClient httpClient = new DefaultHttpClient();
try {
HttpResponse response = httpClient.execute(getMethod); //發(fā)起GET請(qǐng)求
Log.i(TAG, "resCode = " + response.getStatusLine().getStatusCode()); //獲取響應(yīng)碼
Log.i(TAG, "result = " + EntityUtils.toString(response.getEntity(), "utf-8"));//獲取服務(wù)器響應(yīng)內(nèi)容
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
POST方式
//和GET方式一樣,先將參數(shù)放入List
params = new LinkedList<BasicNameValuePair>();
params.add(new BasicNameValuePair("param1", "Post方法"));
params.add(new BasicNameValuePair("param2", "第二個(gè)參數(shù)"));
try {
HttpPost postMethod = new HttpPost(baseUrl);
postMethod.setEntity(new UrlEncodedFormEntity(params, "utf-8")); //將參數(shù)填入POST Entity中
HttpResponse response = httpClient.execute(postMethod); //執(zhí)行POST方法
Log.i(TAG, "resCode = " + response.getStatusLine().getStatusCode()); //獲取響應(yīng)碼
Log.i(TAG, "result = " + EntityUtils.toString(response.getEntity(), "utf-8")); //獲取響應(yīng)內(nèi)容
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
這里只介紹如何使用HttpClient發(fā)起GET或者POST請(qǐng)求
GET 方式
復(fù)制代碼 代碼如下:
//先將參數(shù)放入List,再對(duì)參數(shù)進(jìn)行URL編碼
List<BasicNameValuePair> params = new LinkedList<BasicNameValuePair>();
params.add(new BasicNameValuePair("param1", "中國(guó)"));
params.add(new BasicNameValuePair("param2", "value2"));
//對(duì)參數(shù)編碼
String param = URLEncodedUtils.format(params, "UTF-8");
//baseUrl
String baseUrl = "http://ubs.free4lab.com/php/method.php";
//將URL與參數(shù)拼接
HttpGet getMethod = new HttpGet(baseUrl + "?" + param);
HttpClient httpClient = new DefaultHttpClient();
try {
HttpResponse response = httpClient.execute(getMethod); //發(fā)起GET請(qǐng)求
Log.i(TAG, "resCode = " + response.getStatusLine().getStatusCode()); //獲取響應(yīng)碼
Log.i(TAG, "result = " + EntityUtils.toString(response.getEntity(), "utf-8"));//獲取服務(wù)器響應(yīng)內(nèi)容
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
POST方式
復(fù)制代碼 代碼如下:
//和GET方式一樣,先將參數(shù)放入List
params = new LinkedList<BasicNameValuePair>();
params.add(new BasicNameValuePair("param1", "Post方法"));
params.add(new BasicNameValuePair("param2", "第二個(gè)參數(shù)"));
try {
HttpPost postMethod = new HttpPost(baseUrl);
postMethod.setEntity(new UrlEncodedFormEntity(params, "utf-8")); //將參數(shù)填入POST Entity中
HttpResponse response = httpClient.execute(postMethod); //執(zhí)行POST方法
Log.i(TAG, "resCode = " + response.getStatusLine().getStatusCode()); //獲取響應(yīng)碼
Log.i(TAG, "result = " + EntityUtils.toString(response.getEntity(), "utf-8")); //獲取響應(yīng)內(nèi)容
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
您可能感興趣的文章:
- 詳解Android:向服務(wù)器提供數(shù)據(jù)之get、post方式
- android AsynTask處理返回?cái)?shù)據(jù)和AsynTask使用get,post請(qǐng)求
- Android中post和get的提交方式【三種】
- Android中使用OkHttp包處理HTTP的get和post請(qǐng)求的方法
- Android中使用HttpURLConnection實(shí)現(xiàn)GET POST JSON數(shù)據(jù)與下載圖片
- android平臺(tái)HttpGet、HttpPost請(qǐng)求實(shí)例
- android使用url connection示例(get和post數(shù)據(jù)獲取返回?cái)?shù)據(jù))
- Android發(fā)送GET與POST請(qǐng)求的DEMO詳解
- android之HttpPost&HttpGet使用方法介紹
- 安卓GET與POST網(wǎng)絡(luò)請(qǐng)求的三種方式
相關(guān)文章
Android自定義實(shí)現(xiàn)淘寶下拉刷新效果
這篇文章主要為大家詳細(xì)介紹了Android自定義實(shí)現(xiàn)淘寶下拉刷新效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-12-12
Kotlin中?和!!的區(qū)別詳細(xì)對(duì)比
這篇文章主要給大家介紹了關(guān)于Kotlin中?和!!區(qū)別的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-05-05
Android ViewPager實(shí)現(xiàn)動(dòng)畫(huà)切換效果
這篇文章主要為大家詳細(xì)介紹了Android ViewPager實(shí)現(xiàn)動(dòng)畫(huà)切換效果的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-01-01
ANDROID BottomNavigationBar底部導(dǎo)航欄的實(shí)現(xiàn)示例
本篇文章主要介紹了ANDROID BottomNavigationBar底部導(dǎo)航欄的實(shí)現(xiàn)示例,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2017-10-10
Android判斷手機(jī)是否聯(lián)網(wǎng)及自動(dòng)跳轉(zhuǎn)功能(收藏版)
這篇文章主要介紹了Android判斷手機(jī)是否聯(lián)網(wǎng)及自動(dòng)跳轉(zhuǎn)功能(收藏版),在一些手機(jī)端連接wifi我們經(jīng)常會(huì)遇到這樣的功能,今天小編通過(guò)實(shí)例截圖給大家介紹下,需要的朋友可以參考下2019-11-11
Android TabLayout選項(xiàng)卡使用教程
這篇文章主要介紹了Android TabLayout選項(xiàng)卡使用,為什么會(huì)有這篇文章呢,是因?yàn)橹瓣P(guān)于TabLayout的使用陸陸續(xù)續(xù)也寫(xiě)了好幾篇了,感覺(jué)比較分散,且不成體系,寫(xiě)這篇文章的目的就是希望能把各種效果的實(shí)現(xiàn)一次性講齊2023-04-04
Android實(shí)現(xiàn)為Notification加上一個(gè)進(jìn)度條的方法
這篇文章主要介紹了Android實(shí)現(xiàn)為Notification加上一個(gè)進(jìn)度條的方法,結(jié)合實(shí)例形式分析了Android針對(duì)Notification組件的相關(guān)操作技巧,需要的朋友可以參考下2016-10-10

