gpt4 book ai didi

java - JAX-RS 处理可变数量的 FormParam

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:22:41 24 4
gpt4 key购买 nike

在 Java 中,我正在实现一个服务器,客户端可以在其中使用后查询传递一些数据(键值对)。我已经决定制作一个 REST 服务,并且我计划将 JAX-RS 与 Jetty 一起使用。

我之前不知道要发送到这里的 key 。有没有办法浏览客户端发布的所有 KV 对?我知道如果知道 key ,我们可以检索数据,如 -

@Path("/testpath")
public class test {

@POST
@Path("/level1")
public Response getData(
@FormParam("key1") String val1,
@FormParam("key2") int val2) {

return Response.status(200)
.entity("getData is called, Key1 : " + val1 + ", Key2 : " + val2)
.build();

}

}

在上面的例子中,我可以有 N 个不同的键!

我打算在没有 Jersey 或 RESTeasy 的情况下使用普通 JAX-RS。但是,当在 JAX-RS 中不可能时,我对这些选项持开放态度!

最佳答案

使用MultiValuedMap :

@Path("/testpath")
public class test {
@POST
@Path("/level1")
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
@Produces("text/plain")
public Response getData(MultiValuedMap<String, String> params) {
StringBuilder sb = new StringBuilder("getData is called, ");
for(String param : params.keySet()) {
sb.append(param + " : " + params.getFirst(param) + ", ");
}
return Response.status(200).entity(sb.toString()).build();
}
}

关于java - JAX-RS 处理可变数量的 FormParam,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26974000/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com