You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Java方法中调用自建Spring Boot REST API实现POST请求

嘿,作为新手能搞定Spring Boot的API已经很棒啦!既然Postman能正常调用,那用Java代码实现其实也不难,我给你一步步拆解,用Java 11+自带的HttpClient来做,不用额外加太多依赖,很方便:

步骤1:准备请求体对应的实体类

首先,你需要一个和API接收参数匹配的实体类,假设你的API接收包含name字段的JSON,那可以写个简单的User类:

import com.fasterxml.jackson.annotation.JsonProperty;

public class User {
    @JsonProperty("name")
    private String name;

    // 带参构造器,方便创建对象
    public User(String name) {
        this.name = name;
    }

    // 必须要有无参构造器,Jackson序列化/反序列化需要
    public User() {}

    // Getter和Setter方法
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}
步骤2:用Scanner获取用户输入

这部分很直观,就是读取控制台输入的名字:

import java.util.Scanner;

public class ApiClient {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入名字:");
        String userName = scanner.nextLine();
        scanner.close();

        // 调用API发送POST请求
        sendPostRequest(userName);
    }

    // 后面会实现这个发送请求的方法
    private static void sendPostRequest(String userName) {
        // 具体请求逻辑在这里
    }
}
步骤3:实现POST请求发送

这里用Java 11自带的HttpClient,配合Jackson把Java对象转成JSON格式的请求体:
如果是单独的Java应用(非Spring Boot项目),需要先在Maven里加Jackson的依赖(Spring Boot项目默认已经包含):

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.15.2</version> <!-- 用最新稳定版即可 -->
</dependency>

然后完善sendPostRequest方法:

import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import com.fasterxml.jackson.databind.ObjectMapper;

private static void sendPostRequest(String userName) {
    // 1. 创建HttpClient实例
    HttpClient client = HttpClient.newHttpClient();

    // 2. 构建要发送的User对象,并转成JSON字符串
    User user = new User(userName);
    ObjectMapper objectMapper = new ObjectMapper();
    String jsonBody;

    try {
        jsonBody = objectMapper.writeValueAsString(user);
    } catch (Exception e) {
        System.err.println("JSON序列化失败:" + e.getMessage());
        return;
    }

    // 3. 构建POST请求,替换成你的API实际地址
    HttpRequest request = HttpRequest.newBuilder()
            .uri(URI.create("http://localhost:8080/api/users")) // 改成你Postman里用的地址
            .header("Content-Type", "application/json") // 告诉服务器请求体是JSON格式
            .POST(HttpRequest.BodyPublishers.ofString(jsonBody))
            .build();

    // 4. 发送请求并处理响应
    try {
        HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
        System.out.println("请求状态码:" + response.statusCode());
        System.out.println("响应内容:" + response.body());

        if (response.statusCode() >= 200 && response.statusCode() < 300) {
            System.out.println("名字成功存入数据库啦!");
        } else {
            System.err.println("请求失败,服务器返回错误:" + response.body());
        }
    } catch (Exception e) {
        System.err.println("发送请求时出错:" + e.getMessage());
    }
}
关键注意点
  • 一定要把http://localhost:8080/api/users替换成你实际的POST API地址,就是你在Postman里测试的那个地址。
  • Jackson的ObjectMapper是Java和JSON互相转换的工具,和Spring Boot默认使用的序列化工具一致,兼容性拉满。
  • 异常处理部分可以根据你的需求调整,比如增加日志记录或者重试逻辑。
  • 如果你的Java版本低于11,可以改用OkHttp或者Apache HttpClient,不过更推荐升级到Java 11+,自带的HttpClient足够好用。

内容的提问来源于stack exchange,提问作者Hisham Bawa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 08:17:39