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

Java REST API中POST请求如何传递参数实现接口带参调用

JAX-RS POST接口接收URL参数配置方法

针对你当前的接口代码和给出的URL传参示例,可根据传参格式选择对应配置,直接在方法入参上添加对应注解即可获取参数值,无需手动解析请求。


方案1:匹配?id=xxx查询串传参格式

完全适配你给出的示例URL https://localhost:8080/webresources/test?id=123,使用@QueryParam注解绑定查询参数,注解内填写URL中参数的名称,修改后代码如下:

import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.QueryParam;

@POST
@Path("test")    
public String newRequest(@QueryParam("id") int id) throws ServletException, IOException, JSONException {
    // 调用接口传入?id=123时,方法内的id变量直接获取到值123,可直接使用
    // 业务逻辑编写...
}

如果需要兼容参数未传递的场景,可搭配@DefaultValue设置参数默认值,避免参数缺失触发400错误:

import javax.ws.rs.DefaultValue;

@POST
@Path("test")    
public String newRequest(@DefaultValue("0") @QueryParam("id") int id) {
    // 未传id参数时,id默认赋值为0
}

方案2:路径占位符传参(RESTful风格)

如果你希望URL格式更简洁,实现https://localhost:8080/webresources/test/123形式的调用,可使用@PathParam注解,同时在@Path中配置参数占位符:

import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;

@POST
@Path("test/{id}") // {id}为路径参数占位符,和@PathParam的参数名对应
public String newRequest(@PathParam("id") int id) throws ServletException, IOException, JSONException {
    // 访问/test/123时,id变量直接获取值123
    // 业务逻辑编写...
}

补充说明:如果参数是放在POST请求体中传递(比如JSON参数、表单参数),需要使用@RequestBody(接收JSON/XML格式请求体)或@FormParam(接收x-www-form-urlencoded格式表单参数),不适用于你当前URL带参的场景。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.31 00:09:22