package jkcs; 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 jiekoumoni { public static void main(String[] args) throws ClientProtocolException, IOException { CloseableHttpClient client = HttpClients.createDefault(); //创建一个http客户端 HttpGet httpGet = new HttpGet("http://www.baidu.com"); // 通过httpget方式来实现我们的get请求 CloseableHttpResponse Response = client.execute(httpGet); // 通过client调用execute方法,得到我们的执行结果就是一个response,所有的数据都封装在response里面了 System.out.println(Response.getProtocolVersion()); System.out.println(Response.getStatusLine()); //打印捕获的返回状态 System.out.println(Response.getStatusLine().getStatusCode()); //打印捕获的状态码 Response.close(); // 关闭 } }
执行结果:
HTTP/1.1
HTTP/1.1 200 OK
200
===========================================================================================
HttpClient是Apache Jakarta Common下的子项目,用来提供高效的、最新的、功能丰富的支持HTTP协议的客户端编程工具包,并且它支持HTTP协议最新的版本和建议。
HttpClient最新版本是HttpClient 4.5.3 (GA)。
官方下载:http://hc.apache.org/downloads.cgi
使用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). 如果是无参数的GET请求,则直接使用构造方法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). 释放连接。
原文:https://www.cnblogs.com/xiaobaibailongma/p/12821828.html