一、HttpClient介绍
虽然在 JDK 的 java.net 包中已经提供了访问 HTTP 协议的基本功能,但是它没有提供足够的灵活性和其他应用程序需要的功能。HttpClient 是 Apache Jakarta Common 下的子项目,用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。
二、使用范例(以下版本4.3)
1,通过get方式,请求网页内容。我们首先创建httpclient对象,然后通过httpclient来执行http get方法,httpresponse获得服务端响应的所有内容,httpentity为获取的网页消息体。
CloseableHttpClient httpclient = HttpClients.createDefault(); try { // 以get方法执行请求 HttpGet httpGet = new HttpGet(“http://localhost/”); // 获得服务器响应的所有信息 CloseableHttpResponse responseGet = httpclient.execute(httpGet); try { System.out.println(responseGet.getStatusLine()); // 获得服务器响应的消息体(不包括http head) HttpEntity entity = responseGet.getEntity(); if (entity != null) { // 获得响应字符集编码 ContentType contentType = ContentType.getOrDefault(entity); Charset charset = contentType.getCharset(); InputStream is = entity.getContent(); // 将inputstream转化为reader,并使用缓冲读取,还可按行读取内容 BufferedReader br = new BufferedReader( new InputStreamReader(is, charset)); String line = null; while ((line = br.readLine()) != null) { System.out.println(line); } is.close(); } } finally { responseGet.close(); } } finally { httpclient.close(); }