HttpClient支持 HTTP 协议的客户端编程工具包

[复制链接]
admin 发表于 2025-9-19 11:08:47 | 显示全部楼层 |阅读模式
HttpClient支持 HTTP 协议的客户端编程工具包

HttpClient的maven坐标:
  1. <dependency>
  2.         <groupId>org.apache.httpcomponents</groupId>
  3.         <artifactId>httpclient</artifactId>
  4.         <version>4.5.13</version>
  5. </dependency>
复制代码
阿里云OSS中aliyun-sdk-oss,有这个依赖,所以不用重复加载。
HttpClient的核心API:
  • HttpClient:Http客户端对象类型,使用该类型对象可发起Http请求。
  • HttpClients:可认为是构建器,可创建HttpClient对象。
  • CloseableHttpClient:实现类,实现了HttpClient接口。
  • HttpGet:Get方式请求类型。
  • HttpPost:Post方式请求类型。


HttpClient发送请求步骤:
  • 创建HttpClient对象
  • 创建Http请求对象
  • 调用HttpClient的execute方法发送请求

实现步骤:
  • 1,创建HttpClient对象
  • 2,创建请求对象
  • 3,发送请求,接受响应结果
  • 4,解析结果
  • 5,关闭资源


  1. package com.sky.test;

  2. import org.apache.http.HttpEntity;
  3. import org.apache.http.client.methods.CloseableHttpResponse;
  4. import org.apache.http.client.methods.HttpGet;
  5. import org.apache.http.impl.client.CloseableHttpClient;
  6. import org.apache.http.impl.client.HttpClients;
  7. import org.apache.http.util.EntityUtils;
  8. import org.junit.jupiter.api.Test;
  9. import org.springframework.boot.test.context.SpringBootTest;

  10. @SpringBootTest
  11. public class HttpClientTest {

  12.     /**
  13.      * 测试通过httpclient发送GET方式的请求
  14.      */
  15.     @Test
  16.     public void testGET() throws Exception{
  17.         //创建httpclient对象
  18.         CloseableHttpClient httpClient = HttpClients.createDefault();

  19.         //创建请求对象
  20.         HttpGet httpGet = new HttpGet("http://localhost:8080/user/shop/status");

  21.         //发送请求,接受响应结果
  22.         CloseableHttpResponse response = httpClient.execute(httpGet);

  23.         //获取服务端返回的状态码
  24.         int statusCode = response.getStatusLine().getStatusCode();
  25.         System.out.println("服务端返回的状态码为:" + statusCode);

  26.         HttpEntity entity = response.getEntity();
  27.         String body = EntityUtils.toString(entity);
  28.         System.out.println("服务端返回的数据为:" + body);

  29.         //关闭资源
  30.         response.close();
  31.         httpClient.close();
  32.     }
  33. }
复制代码
1.2.2 POST方式请求

在HttpClientTest中添加POST方式请求方法,相比GET请求来说,POST请求若携带参数需要封装请求体对象,并将该对象设置在请求对象中。
实现步骤:
  • 创建HttpClient对象
  • 创建请求对象
  • 发送请求,接收响应结果
  • 解析响应结果
  • 关闭资源


  1. /**
  2.      * 测试通过httpclient发送POST方式的请求
  3.      */
  4.     @Test
  5.     public void testPOST() throws Exception{
  6.         // 创建httpclient对象
  7.         CloseableHttpClient httpClient = HttpClients.createDefault();

  8.         //创建请求对象
  9.         HttpPost httpPost = new HttpPost("http://localhost:8080/admin/employee/login");

  10.         JSONObject jsonObject = new JSONObject();
  11.         jsonObject.put("username","admin");
  12.         jsonObject.put("password","123456");

  13.         StringEntity entity = new StringEntity(jsonObject.toString());
  14.         //指定请求编码方式
  15.         entity.setContentEncoding("utf-8");
  16.         //数据格式
  17.         entity.setContentType("application/json");
  18.         httpPost.setEntity(entity);

  19.         //发送请求
  20.         CloseableHttpResponse response = httpClient.execute(httpPost);

  21.         //解析返回结果
  22.         int statusCode = response.getStatusLine().getStatusCode();
  23.         System.out.println("响应码为:" + statusCode);

  24.         HttpEntity entity1 = response.getEntity();
  25.         String body = EntityUtils.toString(entity1);
  26.         System.out.println("响应数据为:" + body);

  27.         //关闭资源
  28.         response.close();
  29.         httpClient.close();
  30.     }
复制代码
1.jpg

网站建设,公众号小程序开发,多商户单商户小程序制作,高端系统定制开发,App软件开发联系我们【手机/微信:17817817816
微信扫码

网站建设,公众号小程序开发,商城小程序,系统定制开发,App软件开发等

粤ICP备2024252464号

在本版发帖
微信扫码
QQ客服返回顶部
快速回复 返回顶部 返回列表