在Android SDK中提供了Apache HttpClient(org.apache.http.*)模块。在这个模块中涉及到两个重要的类:HttpGet和HttpPost。
创建步骤:
1、创建HttpGet(或HttpPost)对象,将要请求的URL通过构造方法传入HttpGet(或HttpPost)对象中;
2、使用DefaultHttpClient类的execute方法发送HTTP GET或HTTP POST 请求,并返回HttpResponse对象;
3、通过HttpResponse接口的getEntity方法返回响应信息。
虽然两者都是按这样的步骤来实现的,但是实际中两者又有些区别,具体代码如下:
HTTP GET请求:
String url;
//第一步,创建HttpGet对象
HttpGet httpGet = new HttpGet(url);
//第二步,使用execute方法发送HTTP GET请求,并返回HttpResponse对象
httpResponse = new DefaultHttpClient().execute(httpGet);
if (httpResponse.getStatusLine().getStatusCode() == 200)
{
//第三步,使用getEntity方法活得返回结果
String result = EntityUtils.toString(httpResponse.getEntity());
}
HTTP POST请求:
String url;
//第一步,创建HttpPost对象
HttpPost httpPost = new HttpPost(url);
//设置HTTP POST请求参数必须用NameValuePair对象
List params = new ArrayList();
params.add(new BasicNameValuePair("bookname", etBookName.getText().toString()));
//设置httpPost请求参数
httpPost.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));
//第二步,使用execute方法发送HTTP GET请求,并返回HttpResponse对象
httpResponse = new DefaultHttpClient().execute(httpPost);
if (httpResponse.getStatusLine().getStatusCode() == 200)
{
//第三步,使用getEntity方法活得返回结果
String result = EntityUtils.toString(httpResponse.getEntity());
}