网站根目录权限,计算机网站开发毕业设计论文开题报告,合肥电脑网站建站,重庆网站建站建设免费目录
一、概述
二、HttpClient依赖介绍
1.导入HttpClient4依赖
2.或者导入HttpClient5依赖
3.二者区别
三、HttpClient发送Get请求和Post请求测试
(一)通过HttpClient发送Get请求 (二)通过HttpClient发送Post请求 一、概述 HttpClient是 Apache 软件基金会提供的一…目录
一、概述
二、HttpClient依赖介绍
1.导入HttpClient4依赖
2.或者导入HttpClient5依赖
3.二者区别
三、HttpClient发送Get请求和Post请求测试
(一)通过HttpClient发送Get请求 (二)通过HttpClient发送Post请求 一、概述 HttpClient是 Apache 软件基金会提供的一个用于 Java 应用程序的 HTTP 协议访问库。它提供了强大的功能来处理 HTTP 请求和响应支持同步和异步通信、连接池管理、cookie管理、SSL/TLS加密等特性。从Java 11开始标准Java库中也引入了一个新的HttpClient实现这为开发者提供了原生的支持。 核心API •HttpClient •HttpClients •CloseableHttpClient •HttpGet •HttpPost 发送请求步骤 •创建HttpClient对象 •创建Http请求对象 •调用HttpClient的execute方法发送请求 二、HttpClient依赖介绍
1.导入HttpClient4依赖
dependencygroupIdorg.apache.httpcomponents/groupIdartifactIdhttpclient/artifactIdversion4.5.13/version
/dependency依赖说明 第四代HttpClient这是HttpClient的一个较老但仍然广泛使用的版本被称为HttpClient 4。尽管它没有HttpClient 5中的一些现代化特性但它非常稳定并且有大量的文档和支持。特点 提供了丰富的功能集来处理各种HTTP操作。广泛应用于现有的许多Java应用程序中。良好的向后兼容性。 维护状态虽然官方仍在为该版本提供关键的安全修复但它已进入维护模式意味着主要的新功能开发已经转向HttpClient 5。 另外如果你的项目中使用了阿里云OSS对象存储那么上面的依赖不需要导入因为阿里云OSS依赖底层调用的就是HttpClient dependencygroupIdcom.aliyun.oss/groupIdartifactIdaliyun-sdk-oss/artifactIdversion3.10.2/version
/dependency
2.或者导入HttpClient5依赖
dependencygroupIdorg.apache.httpcomponents.client5/groupIdartifactIdhttpclient5/artifactIdversion5.2.1/version !-- 确保使用最新版本 --
/dependency
依赖说明 第五代HttpClient这是Apache HttpClient项目的最新一代通常称为HttpClient 5。它旨在提供改进的性能、更好的异步支持和更现代的API。新特性与改进 支持HTTP/2。更好的异步请求处理能力。改进的连接管理和资源管理。更清晰的API设计便于理解和使用。 维护状态这是一个活跃开发中的版本推荐用于新的项目或者需要利用其新增特性的场景。 3.二者区别 主要区别 版本差异最显著的区别在于一个是第5代5.x另一个是第4代4.x产品线。功能集HttpClient 5引入了许多新特性如对HTTP/2的支持改进的异步API等而HttpClient 4则侧重于稳定性和广泛的现有应用支持。API设计HttpClient 5提供了更新、更简洁的API设计而HttpClient 4的API虽然也很强大但在某些方面可能显得稍微陈旧一些。未来方向HttpClient 5代表了这个库的未来发展方向而HttpClient 4主要是为了支持现有的用户群并确保稳定性。 如何选择 如果你在启动一个新项目或希望利用最新的HTTP协议特性和改进的API设计那么应该考虑使用HttpClient 5。如果你的项目依赖于大量的HttpClient 4代码或者你需要保持与现有系统的一致性那么继续使用HttpClient 4可能是更安全的选择。 注意同时包含这两个依赖可能会导致类冲突或其他兼容性问题因此建议根据具体情况仅选择其中一个版本使用。如果决定迁移至HttpClient 5请确保测试所有相关功能以保证兼容性。 三、HttpClient发送Get请求和Post请求测试
这里使用的是JDK8并且引入了阿里云OSS对象存储
(一)通过HttpClient发送Get请求
Test
public void testGet() throws Exception {// 1. 创建HttpGet对象设置请求的url地址CloseableHttpClient httpClient HttpClients.createDefault();HttpGet httpGet new HttpGet(http://localhost:8080/user/shop/status);// 2. 使用HttpClient对象执行请求得到一个HttpResponse对象CloseableHttpResponse response httpClient.execute(httpGet);// 3. 获取响应状态码int statusCode response.getStatusLine().getStatusCode();System.out.println(statusCode statusCode);// 4. 从HttpResponse对象中获取响应体HttpEntity entity response.getEntity();String body EntityUtils.toString(entity);System.out.println(body body);// 4. 关闭HttpClient对象response.close();httpClient.close();
}
运行结果
statusCode 200
body {code:1,msg:null,data:1} (二)通过HttpClient发送Post请求
Test
public void testPost() throws Exception {// 1. 创建HttpGet对象设置请求的url地址CloseableHttpClient httpClient HttpClients.createDefault();HttpPost httpPost new HttpPost(http://localhost:8080/admin/employee/login);// 2.设置请求体JSONObject jsonObject new JSONObject();jsonObject.put(username,admin);jsonObject.put(password,123456);String body jsonObject.toJSONString();StringEntity entity new StringEntity(body);httpPost.setEntity(entity);// 3.设置请求体编码格式entity.setContentEncoding(UTF-8);entity.setContentType(application/json);httpPost.setEntity(entity);// 4.发送请求CloseableHttpResponse response httpClient.execute(httpPost);// 5.获取响应状态码int statusCode response.getStatusLine().getStatusCode();System.out.println(statusCode statusCode);// 6.获取响应体HttpEntity httpEntity response.getEntity();String result EntityUtils.toString(httpEntity);System.out.println(result result);// 7.关闭资源response.close();httpClient.close();
}
运行结果
statusCode 200
result {code:1,msg:null,
data:{id:1,userName:admin,name:管理员,
token:eyJhbGciOiJIUzI1NiJ9.eyJlbXBJZCI6MSwiZXhwIjoxNzQ1MDg0MTQyfQ._BFIF6qOdhSf8ML17fYHwnvnAXgl0Y9SAYhC2ehplTs}}