在大大小小的项目中,不可避免两个系统之间的通讯交互,这里一般就能用到我们的HttpClient;
HttpClient
HttpClient是用来提供高效、最新、功能最丰富的HTTP协议的客户端编程工具包;
使用步骤
我们一般可以使用HttpClient发送请求、接收响应;
HttpGet请求响应的一般步骤:
1). 创建HttpClient对象,可以使用HttpClients.createDefault();
2). 如果是无参数的GET请求,则直接使用构造方法HttpGet(String url)创建HttpGet对象即可;
如果是带参数GET请求,则可以先使用URIBuilder(String url)创建对象,再调用addParameter(String param, String value),或setParameter(String param, String value)来设置请求参数,并调用build()方法构建一个URI对象。只有构造方法HttpGet(URI uri)来创建HttpGet对象。
3). 创建HttpResponse,调用HttpClient对象的execute(HttpUriRequest request)发送请求,该方法返回一个HttpResponse。调用HttpResponse的getAllHeaders()、getHeaders(String name)等方法可获取服务器的响应头;调用HttpResponse的getEntity()方法可获取HttpEntity对象,该对象包装了服务器的响应内容。程序可通过该对象获取服务器的响应内容。通过调用getStatusLine().getStatusCode()可以获取响应状态码。
4). 释放连接。
HttpPost请求响应的一般步骤:
1). 创建HttpClient对象,可以使用HttpClients.createDefault();
2). 如果是无参数的Post请求,则直接使用构造方法HttpPost(String url)创建HttpPost对象即可;
如果是带参数POST请求,先构建HttpEntity对象并设置请求参数,然后调用setEntity(HttpEntity entity)创建HttpPost对象。
3). 创建HttpResponse,调用HttpClient对象的execute(HttpUriRequest request)发送请求,该方法返回一个HttpResponse。调用HttpResponse的getAllHeaders()、getHeaders(String name)等方法可获取服务器的响应头;调用HttpResponse的getEntity()方法可获取HttpEntity对象,该对象包装了服务器的响应内容。程序可通过该对象获取服务器的响应内容。通过调用getStatusLine().getStatusCode()可以获取响应状态码。
4). 释放连接。
例如:
普通不带参的Get请求
/1.获得一个httpclient对象
2 CloseableHttpClient httpclient = HttpClients.createDefault();
3 //2.生成一个get请求
4 HttpGet httpget = new HttpGet("http://localhost/");
5 //3.执行get请求并返回结果
6 CloseableHttpResponse response = httpclient.execute(httpget);
7 try {
8 //4.处理结果
9 } finally {
10 response.close();
11 }