Java JAX-RS处理FormParam的可变数量
在Java中,我实现了一个服务器,客户机可以在其中使用post查询传递一些数据(键值对)。我已经决定做一个REST服务,并计划将JAX-RS与Jetty一起使用 我以前不知道要送到这里的钥匙。有没有办法浏览客户发布的所有KV对?我知道,如果知道密钥,我们可以检索数据,如下所示-Java JAX-RS处理FormParam的可变数量,java,rest,jax-rs,Java,Rest,Jax Rs,在Java中,我实现了一个服务器,客户机可以在其中使用post查询传递一些数据(键值对)。我已经决定做一个REST服务,并计划将JAX-RS与Jetty一起使用 我以前不知道要送到这里的钥匙。有没有办法浏览客户发布的所有KV对?我知道,如果知道密钥,我们可以检索数据,如下所示- @Path("/testpath") public class test { @POST @Path("/level1") public Response getData( @F
@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
我计划使用香草JAX-RS,不带Jersey或RESTeasy。但是,如果在JAX-RS中不可能的话,我愿意接受这些选项 使用:
@Path(“/testpath”)
公开课考试{
@职位
@路径(“/level1”)
@使用(MediaType.APPLICATION\u FORM\u URLENCODED)
@生成(“文本/纯文本”)
公共响应getData(多值映射参数){
StringBuilder sb=新的StringBuilder(“getData被调用,”);
for(字符串参数:params.keySet()){
sb.append(param+”:“+params.getFirst(param)+”,”;
}
返回Response.status(200).entity(sb.toString()).build();
}
}
正是我想要的!非常感谢。我正在尝试完全相同的例子,它不起作用的原因是什么?
@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();
}
}