HttpClient是一个实现了Http协议的功能强大的编程工具包。
要使用HttpClient,通常需要以下几部:
1、常见一个HttpClient实例
2、创建一个get或者post方法
3、告诉HttpClient去执行获取的方法
4、读取服务器的响应
5、释放连接
6、处理响应的内容
下面这个实例就实现了一个从指定网页去读取网页内容的代码。
package com.httpclient; import java.io.IOException; import org.apache.http.HttpEntity; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.util.EntityUtils; public class Test01 { public static void main(String[] args) { /** * 使用HttpClents的静态方法createDefault()创建一个可关闭的Http客户端 * 这个client中有很多重载的execute方法,可以用来执行请求 */ CloseableHttpClient client= HttpClients.createDefault(); /** * 创建一个对指定地址的get请求, * 这个请求在执行之后,将会在response中返回一个entity * 在org.apache.http.client.methods包中提供了 * 很多http方法,比如get,post,head之类的 */ HttpGet get=new HttpGet("http://www.eastmoney.com/"); CloseableHttpResponse response=null; try { /** * 使用默认的上下文执行请求 * 返回request的response */ response=client.execute(get); //打印出返回的状态栏 System.out.println(response.getStatusLine()); //从response中获取entity HttpEntity entity=response.getEntity(); /** * 利用EntityUtils这个工具包中的toString这个静态方法 * 可以轻松的获取entity中的内容,并且是以String类型返回 */ System.out.println(EntityUtils.toString(entity)); } catch (ClientProtocolException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { try { response.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }
上面的例子是通过get方法请求的,当然也可以通过post方法来实现。