Android中使用Post请求的方法
本文实例讲述了Android中使用Post请求的方法。分享给大家供大家参考。具体如下:
一、需要用到的场景
在jQuery中使用$.post()就可以方便的发起一个post请求,在android程序中有时也要从服务器获取一些数据,就也必须得使用post请求了。
二、需要用到的主要类
在android中使用post请求主要要用到的类是HttpPost、HttpResponse、EntityUtils
三、主要思路
1、创建HttpPost实例,设置需要请求服务器的url。
2、为创建的HttpPost实例设置参数,参数设置时使用键值对的方式用到NameValuePair类。
3、发起post请求获取返回实例HttpResponse
4、使用EntityUtils对返回值的实体进行处理(可以取得返回的字符串,也可以取得返回的byte数组)
代码也比较简单,注释也加上了,就直接贴出来了
packagecom.justsy.url; importjava.io.IOException; importjava.util.ArrayList; importjava.util.List; importorg.apache.http.HttpResponse; importorg.apache.http.NameValuePair; importorg.apache.http.client.ClientProtocolException; importorg.apache.http.client.entity.UrlEncodedFormEntity; importorg.apache.http.client.methods.HttpPost; importorg.apache.http.impl.client.DefaultHttpClient; importorg.apache.http.message.BasicNameValuePair; importorg.apache.http.protocol.HTTP; importorg.apache.http.util.EntityUtils; importandroid.app.Activity; importandroid.os.Bundle; publicclassHttpURLActivityextendsActivity{ @Override publicvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); System.out.println("starturl..."); Stringurl="http://192.168.2.112:8080/JustsyApp/Applet"; //第一步,创建HttpPost对象 HttpPosthttpPost=newHttpPost(url); //设置HTTPPOST请求参数必须用NameValuePair对象 List<NameValuePair>params=newArrayList<NameValuePair>(); params.add(newBasicNameValuePair("action","downloadAndroidApp")); params.add(newBasicNameValuePair("packageId","89dcb664-50a7-4bf2-aeed-49c08af6a58a")); params.add(newBasicNameValuePair("uuid","test_ok1")); HttpResponsehttpResponse=null; try{ //设置httpPost请求参数 httpPost.setEntity(newUrlEncodedFormEntity(params,HTTP.UTF_8)); httpResponse=newDefaultHttpClient().execute(httpPost); //System.out.println(httpResponse.getStatusLine().getStatusCode()); if(httpResponse.getStatusLine().getStatusCode()==200){ //第三步,使用getEntity方法活得返回结果 Stringresult=EntityUtils.toString(httpResponse.getEntity()); System.out.println("result:"+result); T.displayToast(HttpURLActivity.this,"result:"+result); } }catch(ClientProtocolExceptione){ e.printStackTrace(); }catch(IOExceptione){ e.printStackTrace(); } System.out.println("endurl..."); setContentView(R.layout.main); } }
ADD:使用HttpURLConnection进行post请求:
Stringpath="http://192.168.2.115:8080/android-web-server/httpConnectServlet.do?PackageID=89dcb664-50a7-4bf2-aeed-49c08af6a58a"; URLurl=newURL(path); HttpURLConnectionconn=(HttpURLConnection)url.openConnection(); conn.setRequestMethod("POST"); conn.setConnectTimeout(5000); System.out.println(conn.getResponseCode());
希望本文所述对大家的Android程序设计有所帮助。