Android Post Get 示例 收藏 package alex.reader.ebook.bam;
import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map;
import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.HttpClient; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPost; import org.apache.http.client.params.HttpClientParams; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.message.BasicNameValuePair; import org.apache.http.params.BasicHttpParams; import org.apache.http.params.HttpConnectionParams; import org.apache.http.params.HttpParams; import org.apache.http.params.HttpProtocolParams; import org.apache.http.protocol.HTTP; import org.apache.http.util.EntityUtils;
import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.widget.EditText;
public class SimpleClient extends Activity {
private HttpParams httpParams;
private HttpClient httpClient;
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.simple_client);
EditText editText = (EditText) this.findViewById(R.id.EditText01);
List<NameValuePair> params = new ArrayList<NameValuePair>(); params.add(new BasicNameValuePair("email", "firewings.r@gmail.com")); params.add(new BasicNameValuePair("password", "954619")); params.add(new BasicNameValuePair("remember", "1")); params.add(new BasicNameValuePair("from", "kx")); params.add(new BasicNameValuePair("login", "登 錄")); params.add(new BasicNameValuePair("refcode", "")); params.add(new BasicNameValuePair("refuid", "0"));
Map params2 = new HashMap();
params2.put("hl", "zh-CN");
params2.put("source", "hp");
params2.put("q", "haha");
params2.put("aq", "f");
params2.put("aqi", "g10");
params2.put("aql", "");
params2.put("oq", "");
String url2 = "
String url = "
getHttpClient();
editText.setText(doPost(url, params));
// editText.setText(doGet(url2, params2));
}
public String doGet(String url, Map params) {
/* 建立HTTPGet對象 */
String paramStr = "";
Iterator iter = params.entrySet().iterator(); while (iter.hasNext()) { Map.Entry entry = (Map.Entry) iter.next(); Object key = entry.getKey(); Object val = entry.getValue(); paramStr += paramStr = "&" + key + "=" + val; }
if (!paramStr.equals("")) { paramStr = paramStr.replaceFirst("&", "?"); url += paramStr; } HttpGet httpRequest = new HttpGet(url);
String strResult = "doGetError";
try {
/* 發(fā)送請求并等待響應(yīng) */ HttpResponse httpResponse = httpClient.execute(httpRequest); /* 若狀態(tài)碼為200 ok */ if (httpResponse.getStatusLine().getStatusCode() == 200) { /* 讀返回?cái)?shù)據(jù) */ strResult = EntityUtils.toString(httpResponse.getEntity());
} else { strResult = "Error Response: " + httpResponse.getStatusLine().toString(); } } catch (ClientProtocolException e) { strResult = e.getMessage().toString(); e.printStackTrace(); } catch (IOException e) { strResult = e.getMessage().toString(); e.printStackTrace(); } catch (Exception e) { strResult = e.getMessage().toString(); e.printStackTrace(); }
Log.v("strResult", strResult);
return strResult; }
public String doPost(String url, List<NameValuePair> params) {
/* 建立HTTPPost對象 */ HttpPost httpRequest = new HttpPost(url);
String strResult = "doPostError";
try { /* 添加請求參數(shù)到請求對象 */ httpRequest.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8)); /* 發(fā)送請求并等待響應(yīng) */ HttpResponse httpResponse = httpClient.execute(httpRequest); /* 若狀態(tài)碼為200 ok */ if (httpResponse.getStatusLine().getStatusCode() == 200) { /* 讀返回?cái)?shù)據(jù) */ strResult = EntityUtils.toString(httpResponse.getEntity());
} else { strResult = "Error Response: " + httpResponse.getStatusLine().toString(); } } catch (ClientProtocolException e) { strResult = e.getMessage().toString(); e.printStackTrace(); } catch (IOException e) { strResult = e.getMessage().toString(); e.printStackTrace(); } catch (Exception e) { strResult = e.getMessage().toString(); e.printStackTrace(); }
Log.v("strResult", strResult);
return strResult; }
public HttpClient getHttpClient() {
// 創(chuàng)建 HttpParams 以用來設(shè)置 HTTP 參數(shù)(這一部分不是必需的)
this.httpParams = new BasicHttpParams();
// 設(shè)置連接超時和 Socket 超時,以及 Socket 緩存大小
HttpConnectionParams.setConnectionTimeout(httpParams, 20 * 1000);
HttpConnectionParams.setSoTimeout(httpParams, 20 * 1000);
HttpConnectionParams.setSocketBufferSize(httpParams, 8192);
// 設(shè)置重定向,缺省為 true
HttpClientParams.setRedirecting(httpParams, true);
// 設(shè)置 user agent
String userAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2) Gecko/20100115 Firefox/3.6"; HttpProtocolParams.setUserAgent(httpParams, userAgent);
// 創(chuàng)建一個 HttpClient 實(shí)例
// 注意 HttpClient httpClient = new HttpClient(); 是Commons HttpClient
// 中的用法,在 Android 1.5 中我們需要使用 Apache 的缺省實(shí)現(xiàn) DefaultHttpClient
httpClient = new DefaultHttpClient(httpParams);
return httpClient; } }
本文來自CSDN博客,轉(zhuǎn)載請標(biāo)明出處:http://blog.csdn.net/firewings_r/archive/2010/03/12/5374851.aspx
|