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

SpringBoot与HttpClient:轻松实现GET和POST请求。小编来告诉你更多相关信息。Spring本文核心导读:Spring及Boot与HttpClient的教程内容,一起来了解了解吧。1.HttpClient介绍Ht

SpringBoot与HttpClient:轻松实现GET和POST请求。小编来告诉你更多相关信息。

Spring

本文核心导读:Spring及Boot与HttpClient的教程内容,一起来了解了解吧。

1. HttpClient介绍

HttpClient 是Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。

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

1.1. HttpClient作用

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

思考:为什么要在Java程序中发送Http请求?有哪些应用场景呢?

1.2. HttpClient应用场景

当我们在使用扫描支付、查看地图、获取验证码、查看天气等功能时

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

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

其实,应用程序本身并未实现这些功能,都是在应用程序里访问提供这些功能的服务,访问这些服务需要发送HTTP请求,并且接收响应数据,可通过HttpClient来实现

SpringBoot与HttpClient:轻松实现GET和POST请求。小编来告诉你更多相关信息。

Spring

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

1.3 HttpClient的maven坐标

    org.apache.httpcomponents    httpclient    4.5.13

1.4. HttpClient的核心API

  • HttpClient:Http客户端对象类型,使用该类型对象可发起Http请求。
  • HttpClients:可认为是构建器,可创建HttpClient对象。
  • CloseableHttpClient:实现类,实现了HttpClient接口。
  • HttpGet:Get请求类型。
  • HttpPost:Post请求类型。

1.5. HttpClient发送请求步骤

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

2. SpringBoot快速入门HttpClient

对HttpClient编程工具包有了一定了解后,那么,我们使用HttpClient在Java程序当中来构造Http的请求,并且把请求发送出去,接下来,就通过入门案例分别发送GET请求POST请求,具体来学习一下它的使用方法。

项目结构

创建HttpClient-demo,并导入对应依赖到pom.xml

  • 完整项目结果

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

  • pom.xml 依赖
    4.0.0            spring-boot-starter-parent        org.springframework.boot        2.7.15        com.zbbmeta    HttpClient-demo    1.0-SNAPSHOT            11        11                            org.springframework.boot            spring-boot-starter-web                            org.projectlombok            lombok                            org.springframework.boot            spring-boot-starter-test                            com.github.xiaoymin            knife4j-spring-boot-starter            3.0.2                            org.apache.httpcomponents            httpclient            4.5.13            

2.1.GET方式请求

实现步骤:

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

com.zbbmeta.controller包下创建HttpClientController接口类,并创建testGET()方法

package com.zbbmeta.controller;import io.swagger.annotations.Api;import io.swagger.annotations.ApiOperation;import lombok.extern.slf4j.Slf4j;import org.apache.http.Header;import org.apache.http.HttpEntity;import org.apache.http.client.config.RequestConfig;import org.apache.http.client.methods.CloseableHttpResponse;import org.apache.http.client.methods.HttpGet;import org.apache.http.impl.client.CloseableHttpClient;import org.apache.http.impl.client.HttpClients;import org.apache.http.message.BasicHeader;import org.apache.http.util.EntityUtils;import org.junit.jupiter.api.Test;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.PostMapping;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import java.util.Arrays;/** * @author springboot葵花宝典 * @description: TODO */@RestController@RequestMapping(value = \"/httpclient\")@Slf4j@Api(tags = \"HttpClient测试接口\")public class HttpClientController {       @GetMapping(\"/httpget\")    @ApiOperation(value = \"http员工状态\")    public String testGET() throws Exception{        //创建httpclient对象       CloseableHttpClient httpClient = HttpClients.createDefault();               //创建请求对象        HttpGet httpGet = new HttpGet(\"http://localhost:8899/admin/employee/status\");                //发送请求,接受响应结果        CloseableHttpResponse response = httpClient.execute(httpGet);        //获取服务端返回的状态码        int statusCode = response.getStatusLine().getStatusCode();        System.out.println(\"服务端返回的状态码为:\" + statusCode);        HttpEntity entity = response.getEntity();        String body = EntityUtils.toString(entity);        System.out.println(\"服务端返回的数据为:\" + body);        //关闭资源        response.close();        httpClient.close();        return \"服务端返回的数据为:\" + body;    }n \"服务端返回的数据为:\" + body;    }}

启动项目,PostMan访问http://localhost:8899/httpclient/httpget请求

测试结果

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

2.2. POST方式请求

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

实现步骤:

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

com.zbbmeta.controller包下创建HttpClientController接口类,并创建testPost()方法

 @PostMapping(\"/httppost\")    @ApiOperation(value = \"http员工登录\")    public String testPost() throws Exception{        //创建httpclient对象        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);        //解析返回结果        int statusCode = response.getStatusLine().getStatusCode();        System.out.println(\"响应码为:\" + statusCode);        HttpEntity entity1 = response.getEntity();        String body = EntityUtils.toString(entity1);        System.out.println(\"响应数据为:\" + body);        //关闭资源        response.close();        httpClient.close();        return  body;    }

测试结果

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

以上就是Spring、Boot与HttpClient 及其 轻松实现GET和POST请求的全面介绍了,希望给网的网友们带来一些相关知识。

本文内容由互联网用户自发贡献,该文观点仅代表作者本人,本站仅供展示。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 97552693@qq.com 举报,一经查实,本站将立刻删除。
数码科技

JVM解释和编译指南

2023-11-11 0:12:58

数码科技

如何配置EtherChannel

2023-11-11 0:15:00

搜索