本文是我从对httpclient一无所知到刚入门经过几天的学习的简单总结,有不对之处欢迎指出
下面以get请求演示,post请求类似
通常的执行流程可以通过下面的代码段演示:
HttpClient httpclient = new DefaultHttpClient();
//准备一个请求对象
HttpGet httpget = new HttpGet(“http://www.apache.org/”);
//此处还可以添加请求消息头header,如果是post还可以设置请求参数
//执行请求 HttpResponse response = httpclient.execute(httpget); //检查响应状态 System.out.println(response.getStatusLine()); //获取响应实体的持有 HttpEntity entity = response.getEntity(); //如果响应不包含实体,则没有必要 //担心连接释放 if(entity!= null){ InputStream instream = entity.getContent(); try{ BufferedReader reader = new BufferedReader( new InputStreamReader(instream)); //做一些有用的响应 System.out.println(reader.readLine()); } catch(IOException ex){ //在IOException的情况下,连接将被释放 //自动返回到连接管理器 抛出 } catch(RuntimeException ex){ //如果出现意外异常,您可能希望中止 // HTTP请求为了关闭底层 //连接并将其释放回连接管理器。 httpget.abort(); 抛出 } finally { //关闭输入流将触发连接释放 instream.close(); }} //当不再需要HttpClient实例时, //关闭连接管理器以确保 //立即释放所有系统资源 httpclient.getConnectionManager()。shutdown(); }}