HttpClient
HttpClient 是Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。它并不是浏览器,它只是一个HTTP通信库,因此它只提供通用浏览器应用程序所期望的功能字节,它和浏览器最大的区别就是它没有用户界面
- HttpClient的主要功能:
- 实现了所有 HTTP 的方法(GET、POST、PUT、HEAD、DELETE、HEAD、OPTIONS 等)
- 支持 HTTPS 协议
- 支持代理服务器(Nginx等)等
- 支持自动(跳转)转向
-…
使用HttpClient的请求get和post示例
一:导入HttpClient和Jackson-databind依赖(jackson作用后期会说到)
<!-- Jackson Json处理工具包 -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.7.9.6</version>
</dependency>
<!-- httpclient -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.3.5</version>
</dependency>
二:发送请求,创建一个类,实现我们的发送请求的代码
1:发送get请求,不带参数
//請求get請求,不带参数
public static void main(String[] args) throws ClientProtocolException, IOException {
//创建HttpClient对象
CloseableHttpClient createDefault = HttpClients.createDefault();
//創建get請求
HttpGet get = new HttpGet("http://www.baidu.com");
//執行請求
CloseableHttpResponse execute = createDefault.execute(get);
//判断响应状态码,为200输出内容
if(execute.getStatusLine().getStatusCode()==200) {
String string = EntityUtils.toString(execute.getEntity());
System.out.println(string);
}
//关闭连接
if(execute!=null) {
execute.close();
}
//关闭连接
if(createDefault!=null) {
createDefault.close();
}
}
2:发送get请求,带参数
1.我们可以通过使用URIBuilder设置参数在通过build()方法获取uri对象
2.也可以通过在url上写参数
//請求get請求,带参数
public static void main(String[] args) throws ClientProtocolException, IOException {
//创建HttpClient对象
CloseableHttpClient createDefault = HttpClients.createDefault();
//创建URI实例,在该接口的子类URIBuilder实例对象中设置参数,在通过build()方法构建出URI实例
URI uri=new URIBuilder("https://www.baidu.com/s"