Android中使用Post請求(網友版)

來源:互聯網
上載者:User

轉自 http://www.2cto.com/kf/201207/138589.html

一、需要用到的情境

在jQuery中使用$.post()就可以方便的發起一個post請求,在android程式中有時也要從伺服器擷取一些資料,就也必須得使用post請求了。

二、需要用到的主要類

在android中使用post請求主要要用到的類是HttpPost、HttpResponse、EntityUtils

三、主要思路

1、建立HttpPost執行個體,設定需要請求伺服器的url。

2、為建立的HttpPost執行個體設定參數,參數設定時使用索引值對的方式用到NameValuePair類。

3、發起post請求擷取返回執行個體HttpResponse

4、使用EntityUtils對傳回值的實體進行處理(可以取得返回的字串,也可以取得返回的byte數組)

代碼也比較簡單,注釋也加上了,就直接貼出來了

 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";         // 第一步,建立HttpPost對象         HttpPost httpPost = new HttpPost(url);         // 設定HTTP POST請求參數必須用NameValuePair對象         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 {             // 設定httpPost請求參數             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方法活得返回結果                 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 進行post請求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());
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.