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

如何在Spring Boot 3.2新RestClient中传递请求参数?

Spring RestClient 传递路径变量与请求参数示例

下面是使用RestClient同时传递1个路径变量和5个请求参数的完整示例,适配GET请求场景:

import org.springframework.web.client.RestClient;
import java.util.Map;

public class RestClientExample {
    public static void main(String[] args) {
        // 构建RestClient实例
        RestClient restClient = RestClient.create();

        // 定义路径变量与请求参数
        Long userId = 123L; // 路径变量值
        Map<String, String> queryParams = Map.of(
            "param1", "value1",
            "param2", "value2",
            "param3", "value3",
            "param4", "value4",
            "param5", "value5"
        );

        // 发起请求并处理响应
        String response = restClient.get()
                .uri("https://api.example.com/users/{userId}", userId) // 设置路径变量
                .queryParams(queryParams) // 批量添加请求参数
                .retrieve()
                .body(String.class);

        System.out.println("响应结果: " + response);
    }
}

关键点说明:

  • 路径变量:在uri()方法的第一个参数中用{变量名}占位,第二个参数传入对应值;多路径变量可按顺序传值,或用Map批量传递(如uri("url/{var1}/{var2}", Map.of("var1", val1, "var2", val2)))。
  • 请求参数:
    • 批量添加:用queryParams()传入MultiValueMap或普通Map,适合参数较多的场景。
    • 逐个添加:支持链式调用queryParam("param1", "value1").queryParam("param2", "value2")单独设置每个参数。
  • 若为POST请求,需将业务参数放入请求体(通过body()方法传递),URL路径变量和请求参数的设置逻辑与GET一致。

迁移适配写法

从WebClient迁移时,RestClient支持和WebClient一致的URI构建lambda写法,可直接复用原有逻辑框架:

restClient.get()
        .uri(uriBuilder -> uriBuilder
                .path("/users/{userId}")
                .queryParam("param1", "value1")
                .queryParam("param2", "value2")
                .queryParam("param3", "value3")
                .queryParam("param4", "value4")
                .queryParam("param5", "value5")
                .build(userId))
        .retrieve()
        .body(String.class);

内容的提问来源于stack exchange,提问作者A. Student

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 20:06:02