- 首先,我们要熟悉Android的HttpGet和HttpPost请求。其中Apache公司已经提供了两个类,叫:HttpGet和HttpPost两个类。两个类的用法不同,不解释贴代码:
- 1. 使用HttpGet请求Baidu的主页:
- //使用HttpGet方法,把百度的主页传入
- HttpGet hettpGet = new HttpGet("http://www.baidu.com/");
- //使用默认的HttpClient
- HttpClient hc = new DefaultHttpClient();
- try {
- //执行HttpGet方法,并且获取返回的响应
- HttpResponse response = hc.execute(hettpGet);
- //如果响应码为200则表示获取成功,否则为发生错误
- if (response.getStatusLine().getStatusCode() == 200) {
- //s就是获得的HTML代码
- String s = EntityUtils.toString(response.getEntity());
- System.out.println(s);
- }
- } catch (ClientProtocolException e)
- {
- e.printStackTrace();
- } catch (IOException e)
- { e.printStackTrace();
- }
-
这样就向百度服务器发送了一个HttpGet请求,请求的是百度的搜索首页,服务器返回来都是Html代码,只是浏览器有解析HTML的功能,将HTML代码转换成所显示的页面,所以,打印出来的都是HTML代码。
- //使用HttpPost发送请求
- HttpPost httpPost = new HttpPost(url);
- //使用NameValuePaira保存请求中所需要传入的参数
- List<NameValuePair> paramas = new ArrayList<NameValuePair>();
- paramas.add(new BasicNameValuePair("a", "a"));
- try {
-
- HttpResponse httpResponse;
- //将NameValuePair放入HttpPost请求体中
- httpPost.setEntity(new UrlEncodedFormEntity(paramas,
- HTTP.UTF_8));
- //执行HttpPost请求
- httpResponse = new DefaultHttpClient().execute(httpPost);
- //如果响应码为200则表示获取成功,否则为发生错误
- if (httpResponse.getStatusLine().getStatusCode() == 200) {
- String s = EntityUtils.toString(httpResponse
- .getEntity());}
- } catch (UnsupportedEncodingException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (ClientProtocolException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }