本文實例講述了Android使用httpPost向服務器發送請求的方法。分享給大家供大家參考,具體如下:
import java.util.List;import org.apache.http.HttpEntity;import org.apache.http.HttpResponse;import org.apache.http.NameValuePair;import org.apache.http.client.HttpClient;import org.apache.http.client.entity.UrlEncodedFormEntity;import org.apache.http.client.methods.HttpPost;import org.apache.http.conn.ConnectTimeoutException;import org.apache.http.impl.client.DefaultHttpClient;import org.apache.http.params.CoreConnectionPNames;import org.apache.http.protocol.HTTP;import org.apache.http.util.EntityUtils;import android.util.Log;public class RequestByHttpPost { public static String TIME_OUT = "操作超時"; public static String doPost(List<NameValuePair> params,String url) throws Exception{ String result = null; // 新建HttpPost對象 HttpPost httpPost = new HttpPost(url); // 設置字符集 HttpEntity entity = new UrlEncodedFormEntity(params, HTTP.UTF_8); // 設置參數實體 httpPost.setEntity(entity); // 獲取HttpClient對象 HttpClient httpClient = new DefaultHttpClient(); //連接超時 httpClient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 30000); //請求超時 httpClient.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, 30000); try { // 獲取HttpResponse實例 HttpResponse httpResp = httpClient.execute(httpPost); // 判斷是夠請求成功 if (httpResp.getStatusLine().getStatusCode() == 200) { // 獲取返回的數據 result = EntityUtils.toString(httpResp.getEntity(), "UTF-8"); Log.i("HttpPost", "HttpPost方式請求成功,返回數據如下:"); Log.i("result", result); } else { Log.i("HttpPost", "HttpPost方式請求失敗"); } } catch (ConnectTimeoutException e){ result = TIME_OUT; } return result; }}
可以直接用的完整類。
希望本文所述對大家Android程序設計有所幫助。
新聞熱點
疑難解答
圖片精選