您的位置:首页 > 新闻 > 会展 > ppt模板免费下载整套_宝安建网站外包_公众号运营_柳州网站建设

ppt模板免费下载整套_宝安建网站外包_公众号运营_柳州网站建设

2025/8/14 4:31:14 来源:https://blog.csdn.net/qq_46637011/article/details/143251518  浏览:    关键词:ppt模板免费下载整套_宝安建网站外包_公众号运营_柳州网站建设
ppt模板免费下载整套_宝安建网站外包_公众号运营_柳州网站建设

1. 介绍

1.1 简介

HttpClient 是 Apache Jakarta Commons 项目中的一个子项目,为开发人员提供了一个高效、功能丰富、支持最新 HTTP 协议的客户端工具包。它不仅可以支持 HTTP/1.1 和 HTTP/2 等最新版本的 HTTP 协议,还包括一系列高级特性,如连接池管理、SSL 支持、自动重试机制、代理支持、带宽限制等,旨在帮助开发者轻松进行 HTTP 通信。

1.2 HttpClient作用

  • 发送 HTTP 请求:通过 HttpClient 可以向服务端发送 GET、POST、PUT、DELETE 等 HTTP 请求。

  • 接收响应数据:在请求发出后,可以获取到服务器返回的响应信息,包括状态码、响应头以及响应体内容。

1.3 HttpClient应用场景

在现代应用中,HttpClient 的使用场景非常广泛,以下是几个常见的应用场景:

  1. 扫描支付:例如调用第三方支付接口(如支付宝、微信支付)进行扫码支付。应用程序通过 HttpClient 发送支付请求,获取支付二维码。

  2. 地图服务:例如调用百度地图、Google Maps 的 API 获取地理位置信息,应用程序通过 HttpClient 向这些服务发送请求,并接收相应的地理信息数据。

  3. 验证码获取:例如短信或邮箱验证码,应用程序调用第三方短信或邮件服务,向用户发送验证码。

  4. 天气查询:应用程序通过访问第三方天气服务 API(如中国气象网、OpenWeather API)获取最新的天气信息并展示给用户。

  5. 社交媒体交互:例如从 Twitter、Facebook 或 LinkedIn 获取用户动态,进行社交媒体内容的展示与分析。

在这些场景下,应用程序本身并未实现这些具体功能,而是通过发送 HTTP 请求来访问和利用第三方提供的功能服务。通过使用 HttpClient,开发者可以轻松构建、发送 HTTP 请求,并接收和解析响应数据。

1.4 使用

1.4.1 HttpClient的maven坐标

要使用 HttpClient,首先需要在项目的 Maven 配置文件(pom.xml)中添加依赖。可以通过以下 Maven 坐标来引入 HttpClient 库:

<dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>4.5.13</version>
</dependency>

1.4.2 HttpClient的核心API

  • HttpClient:HTTP 客户端接口,定义了 HTTP 通信的主要方法,用于发起 HTTP 请求。

  • HttpClients:是 HttpClient 的构建器类,可以通过静态方法来创建 HttpClient 实例,提供了方便的配置方式,如连接池和超时设置等。

  • CloseableHttpClientHttpClient 的一个实现类,实现了自动资源管理接口 Closeable,在请求完成后可以自动关闭资源。

  • HttpGet:代表 HTTP GET 请求,常用于获取数据。

  • HttpPost:代表 HTTP POST 请求,通常用于发送数据,如表单提交和 JSON 数据传输。

1.4.3 HttpClient发送请求步骤

使用 HttpClient 发送请求的步骤如下:

(1)创建 HttpClient 对象

  • 通过 HttpClients.createDefault() 方法创建一个 CloseableHttpClient 实例。

  • 如果需要定制化配置,例如连接池大小、超时设置等,可以使用 HttpClients.custom() 方法来构建。

CloseableHttpClient httpClient = HttpClients.createDefault();

(2)创建 HTTP 请求对象

  • 根据请求的类型,创建相应的请求对象,如 HttpGetHttpPost 等。

  • 设置请求的 URL 以及请求头、请求参数等。

HttpGet request = new HttpGet("https://api.example.com/data");
request.setHeader("Accept", "application/json");

(3)调用 HttpClient 的 execute 方法发送请求

  • 使用 httpClient.execute(request) 方法发送请求,并获取响应对象 CloseableHttpResponse

  • 响应对象可以用来获取状态码、响应头和响应体数据。

  • 操作完成后,记得关闭 CloseableHttpClientCloseableHttpResponse 以释放资源。

try (CloseableHttpResponse response = httpClient.execute(request)) {int statusCode = response.getStatusLine().getStatusCode();HttpEntity entity = response.getEntity();String result = EntityUtils.toString(entity);System.out.println("Response status code: " + statusCode);System.out.println("Response content: " + result);
} catch (IOException e) {e.printStackTrace();
}

2. 使用示例

2.1 GET方式请求

2.1.1 导入maven坐标

<dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>4.5.13</version>
</dependency>

2.1.2 代码示例

@SpringBootTest
public class HttpClientTest {/*** 测试通过 HttpClient 发送 GET 请求的方法。* 使用 SpringBootTest 注解,支持 Spring Boot 应用环境下的测试。*/@Testpublic void testGET() throws Exception {// 1. 创建 HttpClient 对象// 使用 HttpClients 的静态方法创建一个默认的 HttpClient 实例,能够发送 HTTP 请求CloseableHttpClient httpClient = HttpClients.createDefault();// 2. 创建 GET 请求对象// HttpGet 对象代表一个 HTTP GET 请求,这里设置请求的 URL 为 "http://localhost:8080/status"HttpGet httpGet = new HttpGet("http://localhost:8080/status");// 3. 发送请求并接受响应结果// 使用 HttpClient 的 execute 方法发送请求,并获取服务器的响应对象(CloseableHttpResponse)CloseableHttpResponse response = httpClient.execute(httpGet);// 4. 获取服务器返回的状态码// 从响应对象中提取状态码,状态码可以用于判断请求是否成功 (如 200 表示成功)int statusCode = response.getStatusLine().getStatusCode();System.out.println("服务端返回的状态码为:" + statusCode);// 5. 获取响应体内容// 从响应对象中获取响应体(HttpEntity),将其转换为字符串格式// 需要使用 EntityUtils.toString() 将 HttpEntity 转换为可读的字符串格式HttpEntity entity = response.getEntity();String body = EntityUtils.toString(entity);System.out.println("服务端返回的数据为:" + body);// 6. 关闭资源// 为了避免资源泄露,应该在完成请求后关闭响应对象和 HttpClient 对象response.close();httpClient.close();}
}

2.2 POST方式请求

POST方式请求方法,相比GET请求来说,POST请求若携带参数需要封装请求体对象,并将该对象设置在请求对象中。

/*** 测试通过 HttpClient 发送 POST 请求的方法。* 使用 SpringBootTest 注解,支持 Spring Boot 应用环境下的测试。*/
@Test
public void testPOST() throws Exception {// 1. 创建 HttpClient 对象// 使用 HttpClients 的静态方法创建一个默认的 HttpClient 实例,用于发送 HTTP 请求CloseableHttpClient httpClient = HttpClients.createDefault();// 2. 创建 POST 请求对象// HttpPost 对象代表一个 HTTP POST 请求,这里设置请求的 URL 为 "http://localhost:8080/admin/employee/login"HttpPost httpPost = new HttpPost("http://localhost:8080/admin/employee/login");// 3. 构造 JSON 数据// 创建一个 JSON 对象,将用户名和密码放入 JSON 中,模拟登录请求的请求体JSONObject jsonObject = new JSONObject();jsonObject.put("username", "admin");jsonObject.put("password", "123456");// 4. 设置请求实体(请求体)// 将 JSON 对象转换为字符串并构建成 StringEntity 对象,指定请求体内容StringEntity entity = new StringEntity(jsonObject.toString());// 设置请求体的编码方式为 UTF-8entity.setContentEncoding("utf-8");// 设置请求体的数据格式为 JSONentity.setContentType("application/json");// 将请求实体添加到 POST 请求中httpPost.setEntity(entity);// 5. 发送请求并接收响应// 使用 HttpClient 的 execute 方法发送 POST 请求,并获取服务器返回的响应对象(CloseableHttpResponse)CloseableHttpResponse response = httpClient.execute(httpPost);// 6. 解析返回结果// 获取响应状态码,可用于判断请求是否成功(如 200 表示成功)int statusCode = response.getStatusLine().getStatusCode();System.out.println("响应码为:" + statusCode);// 获取响应体内容,将响应的 HttpEntity 转换为字符串格式HttpEntity entity1 = response.getEntity();String body = EntityUtils.toString(entity1);System.out.println("响应数据为:" + body);// 7. 关闭资源// 为避免资源泄露,在完成请求后关闭响应对象和 HttpClient 对象response.close();httpClient.close();
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com