在Java中,我正在实现一个服务器,客户端可以使用post查询传递一些数据(键值对)。我决定制作一个REST服务,我打算将JAX-RS和Jetty一起使用。
我之前没有关于要发送的密钥的知识。有没有办法浏览客户发布的所有KV对?我知道如果知道密钥,我们可以在 -
中检索数据@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的vanilla JAX-RS。但是,如果在JAX-RS中无法实现,我对这些选项持开放态度。
答案 0 :(得分:2)
@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();
}
}