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

Micronaut Http Client如何使用Map传递查询参数?

Micronaut客户端传递Map类型查询参数的解决方案

Micronaut支持传递Map类型的查询参数,无需使用类似Retrofit的@QueryMap注解,直接用@QueryValue修饰Map参数即可实现需求。

基础实现示例

Kotlin代码示例

@Client("MyApi")
interface Zoo {
    fun fetchAnimals(@QueryValue queryParams: Map<String, String>): String
}

功能说明

调用该方法时,Map中的每一组键值对会自动转换为URL的查询参数。例如传入mapOf("color" to "red", "type" to "dog"),最终生成的请求URL会包含:
?color=red&type=dog

处理多值查询参数

如果需要传递同一参数名对应多个值的场景(比如?color=red&color=blue),可以使用Micronaut提供的MultiValueMap替代普通Map:

import io.micronaut.core.convert.value.MultiValueMap

@Client("MyApi")
interface Zoo {
    fun fetchAnimals(@QueryValue queryParams: MultiValueMap<String, String>): String
}

调用时传入MultiValueMap.of("color", listOf("red", "blue")),即可生成包含多值的查询参数。

额外配置说明

  • 若希望Map参数作为带前缀的查询参数,可在@QueryValue中指定前缀,比如@QueryValue("filter") queryParams: Map<String, String>,此时生成的参数格式为filter[color]=red(具体格式可通过Micronaut配置调整)。
  • 确保Map的键值对为可序列化的基础类型,避免因复杂对象导致参数转换失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 11:07:38