Android中使用Post請(qǐng)求的方法
本文實(shí)例講述了Android中使用Post請(qǐng)求的方法。分享給大家供大家參考。具體如下:
一、需要用到的場(chǎng)景
在jQuery中使用$.post()就可以方便的發(fā)起一個(gè)post請(qǐng)求,在android程序中有時(shí)也要從服務(wù)器獲取一些數(shù)據(jù),就也必須得使用post請(qǐng)求了。
二、需要用到的主要類(lèi)
在android中使用post請(qǐng)求主要要用到的類(lèi)是HttpPost、HttpResponse、EntityUtils
三、主要思路
1、創(chuàng)建HttpPost實(shí)例,設(shè)置需要請(qǐng)求服務(wù)器的url。
2、為創(chuàng)建的HttpPost實(shí)例設(shè)置參數(shù),參數(shù)設(shè)置時(shí)使用鍵值對(duì)的方式用到NameValuePair類(lèi)。
3、發(fā)起post請(qǐng)求獲取返回實(shí)例HttpResponse
4、使用EntityUtils對(duì)返回值的實(shí)體進(jìn)行處理(可以取得返回的字符串,也可以取得返回的byte數(shù)組)
代碼也比較簡(jiǎn)單,注釋也加上了,就直接貼出來(lái)了
package com.justsy.url;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;
import android.app.Activity;
import android.os.Bundle;
public class HttpURLActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
System.out.println("start url...");
String url = "http://192.168.2.112:8080/JustsyApp/Applet";
// 第一步,創(chuàng)建HttpPost對(duì)象
HttpPost httpPost = new HttpPost(url);
// 設(shè)置HTTP POST請(qǐng)求參數(shù)必須用NameValuePair對(duì)象
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("action", "downloadAndroidApp"));
params.add(new BasicNameValuePair("packageId", "89dcb664-50a7-4bf2-aeed-49c08af6a58a"));
params.add(new BasicNameValuePair("uuid", "test_ok1"));
HttpResponse httpResponse = null;
try {
// 設(shè)置httpPost請(qǐng)求參數(shù)
httpPost.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));
httpResponse = new DefaultHttpClient().execute(httpPost);
//System.out.println(httpResponse.getStatusLine().getStatusCode());
if (httpResponse.getStatusLine().getStatusCode() == 200) {
// 第三步,使用getEntity方法活得返回結(jié)果
String result = EntityUtils.toString(httpResponse.getEntity());
System.out.println("result:" + result);
T.displayToast(HttpURLActivity.this, "result:" + result);
}
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("end url...");
setContentView(R.layout.main);
}
}
ADD:使用HttpURLConnection 進(jìn)行post請(qǐng)求:
String path = "http://192.168.2.115:8080/android-web-server/httpConnectServlet.do?PackageID=89dcb664-50a7-4bf2-aeed-49c08af6a58a";
URL url = new URL(path);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setConnectTimeout(5000);
System.out.println(conn.getResponseCode());
希望本文所述對(duì)大家的Android程序設(shè)計(jì)有所幫助。
相關(guān)文章
Activity取消界面切換的默認(rèn)動(dòng)畫(huà)方法(推薦)
下面小編就為大家?guī)?lái)一篇Activity取消界面切換的默認(rèn)動(dòng)畫(huà)方法(推薦)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-12-12
android 自定義view實(shí)現(xiàn)彩虹進(jìn)度條功能
實(shí)現(xiàn)一個(gè)彩虹色進(jìn)度條功能,不說(shuō)明具體用途大家應(yīng)該能猜到,想找別人造的輪子,但是沒(méi)有合適的,所以決定自己實(shí)現(xiàn)一個(gè),下面小編通過(guò)實(shí)例代碼給大家分享android 自定義view實(shí)現(xiàn)彩虹進(jìn)度條功能,感興趣的朋友一起看看吧2024-06-06
Android 滾動(dòng)時(shí)間選擇的示例代碼
這篇文章主要介紹了Android 滾動(dòng)時(shí)間選擇的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12
Android 安全加密:對(duì)稱(chēng)加密詳解
本文主要介紹Android 安全加密對(duì)稱(chēng)加密,這里整理了詳細(xì)的資料及介紹凱撒密碼和對(duì)稱(chēng)密碼的資料,有興趣的小伙伴可以參考下2016-09-09
Android?Drawable代碼編寫(xiě)的新姿勢(shì)分享
Drawable是什么?按照字面翻譯,就是可繪制的,由于能夠繪制的東西很多,所以這個(gè)類(lèi)是一個(gè)抽象類(lèi),下面這篇文章主要給大家介紹了關(guān)于Android?Drawable代碼編寫(xiě)的新姿勢(shì),需要的朋友可以參考下2022-01-01
Android實(shí)現(xiàn)沉浸式狀態(tài)欄功能
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)沉浸式狀態(tài)欄功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-10-10
Flutter學(xué)習(xí)之矢量圖SVG的區(qū)域填色示例詳解
這篇文章主要為大家介紹了Flutter學(xué)習(xí)之矢量圖SVG的區(qū)域填色示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04

