扫码阅读
手机扫码阅读

Spring Boot与HttpClient:轻松实现GET和POST请求

512 2024-07-17

我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。

查看原文:Spring Boot与HttpClient:轻松实现GET和POST请求
文章来源:
springboot葵花宝典
扫码关注公众号

Spring Boot与HttpClient: 轻松实现GET和POST请求

预计阅读时间:约13分钟

1. HttpClient介绍

HttpClient是Apache Jakarta Common下的一个子项目,为Java提供支持HTTP协议的高效工具包。它支持最新的HTTP协议版本,并能发送HTTP请求和接收响应数据。

1.1 HttpClient作用

  • 发送HTTP请求
  • 接收响应数据

1.2 HttpClient应用场景

HttpClient在扫描支付、查看地图、获取验证码、查看天气等场景中应用广泛。通过发送HTTP请求,应用程序可以访问外部服务完成任务。

1.3 HttpClient的maven坐标

org.apache.httpcomponents
httpclient
4.5.13

1.4 HttpClient的核心API

  • HttpClient:用于发起HTTP请求的核心对象。
  • HttpClients:构建器,用于创建HttpClient对象。
  • CloseableHttpClient:HttpClient接口的实现类。
  • HttpGet:用于GET请求的对象。
  • HttpPost:用于POST请求的对象。

1.5 HttpClient发送请求步骤

  1. 创建HttpClient对象
  2. 创建Http请求对象
  3. 调用HttpClient的execute方法发送请求

2. SpringBoot快速入门HttpClient

在了解HttpClient基础后,可以通过Spring Boot实现GET和POST请求。以下是详细步骤和代码示例。

项目结构

创建名为HttpClient-demo的项目,并在pom.xml中导入必要依赖。

org.springframework.boot
spring-boot-starter-web
org.apache.httpcomponents
httpclient
4.5.13

2.1 GET方式请求

实现步骤:

  1. 创建HttpClient对象
  2. 创建请求对象
  3. 发送请求,接收响应结果
  4. 解析结果
  5. 关闭资源

代码示例:

@GetMapping("/httpget")
public String testGET() throws Exception {
    CloseableHttpClient httpClient = HttpClients.createDefault();
    HttpGet httpGet = new HttpGet("http://localhost:8899/admin/employee/status");
    CloseableHttpResponse response = httpClient.execute(httpGet);
    int statusCode = response.getStatusLine().getStatusCode();
    String body = EntityUtils.toString(response.getEntity());
    response.close();
    httpClient.close();
    return "服务端返回的数据为:" + body;
}

测试结果:通过PostMan访问http://localhost:8899/httpclient/httpget,可以成功获取GET请求结果。

2.2 POST方式请求

相比GET请求,POST请求需封装请求体对象并设置到请求对象中。实现步骤:

  1. 创建HttpClient对象
  2. 创建请求对象
  3. 发送请求,接收响应结果
  4. 解析响应结果
  5. 关闭资源

代码示例:

@PostMapping("/httppost")
public String testPost() throws Exception {
    CloseableHttpClient httpClient = HttpClients.createDefault();
    HttpPost httpPost = new HttpPost("http://localhost:8899/admin/employee/login");
    JSONObject jsonObject = new JSONObject();
    jsonObject.put("username", "admin");
    jsonObject.put("password", "123456");
    StringEntity entity = new StringEntity(jsonObject.toString());
    entity.setContentEncoding("utf-8");
    entity.setContentType("application/json");
    httpPost.setEntity(entity);
    CloseableHttpResponse response = httpClient.execute(httpPost);
    String body = EntityUtils.toString(response.getEntity());
    response.close();
    httpClient.close();
    return body;
}

测试结果:通过PostMan访问http://localhost:8899/httpclient/httppost,可以成功获取POST请求结果。

结语

本文介绍了如何通过Spring Boot集成HttpClient工具,轻松实现GET和POST请求。代码示例已上传至GitHub,欢迎访问学习。

代码地址:GitHub

想要了解更多内容?

查看原文:Spring Boot与HttpClient:轻松实现GET和POST请求
文章来源:
springboot葵花宝典
扫码关注公众号