Android学习笔记---- HttpClient获取服务器数据

首先要注意的是,Android开发中,我们访问网络,请求资源的时候,根据当时的网络状态的情况,请求的时间会不一样,这样如果在UI主线程里面请求网络的话,就可能会出现UI延迟出现的情况,这是用户不能忍受的,所以我们一般是在子线程里面请求网络的。

HttpClient的使用步骤:

1、生成代表客户端的HttpClient对象

HttpClient httpClient = new DefaultHttpClient();


2、生成代表请求的HttpGet对象

HttpGet httpGet = new HttpGet("你请求的URl地址----例如:www.baidu.com");


3、发送请求,获取服务器返回的HttpResponse对象

HttpResponse rp = httpClient.execute(httpGet);


4、检查响应状态是否正常

int code = rp.getStatusLine().getStatusCode();

如果code的值为200,则为正常的相应,有可能出现404或者505等错误!

5、获取响应对象当中的数据

HttpEntity entity = rp.getEntity();



具体实现代码如下:

	class NetworkThread extends Thread {
		@Override
		public void run() {
			// 创建HttpClient对象
			HttpClient httpClient = new DefaultHttpClient();
			// 穿件代表请求的对象,参数是访问服务器的地址
			HttpGet httpGet = new HttpGet("你请求的URl地址");
			// 执行请求,获取服务器发还的相应对象
			try {
				HttpResponse rp = httpClient.execute(httpGet);
				// 检验相应的状态是否正常,如果值为200则为正常
				int code = rp.getStatusLine().getStatusCode();
				if (code == 200) {
					// 从相应对象中取出数据
					HttpEntity entity = rp.getEntity();
					InputStream in = entity.getContent();
					BufferedReader reader = new BufferedReader(
							new InputStreamReader(in));
					String line = reader.readLine();
					Log.d("HTTP", "取到的数据是:" + line);
				}
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
	}

最后还有一点,安卓app想要访问网络请求资源就必须要赋予它访问网络的权限,可以在AndroidManifest.xml清单文件中配置权限,加上如下代码:

    


你可能感兴趣的:(Android笔记)