我通过 http 请求将 json 格式的数据发送到我的 Java 服务器。我在接收具有类似功能的请求方面取得了巨大成功
Boolean deleteUsers(List<Long> userIds) {
// ...
return true;
}
我在 Java 服务器上使用 RESTEasy,它很乐意将请求的有效负载转换为此 List<Long>
太方便了。
现在我想发送一个字符串和一个数字列表!理想情况下,我的接收函数看起来像
Boolean deleteUsers(String string, List<Long>userIds) {
// ....
return true;
}
唉,RESTEasy 似乎不明白我的意思,并且在负载上卡住了。
如何从有效负载接收多种类型的数据?
最佳答案
根据您的具体用例,您可以简单地将第一个参数(“字符串”)添加到 @Path 注释,例如
@POST
@Path("{string:.*}")
@Consume(MediaType.APPLICATION_JSON)
@Produce(MediaType.APPLICATION_JSON)
Boolean deleteUsers(@PathParam("string") String string, List<Long>userIds) {
...
}
这将产生以下 URL 形式:
/service/<string>/
有效负载包含您的用户 ID 列表(作为 json)。
正如您可能意识到的,建议使用 @POST 方法类型,因为服务构造方法不是幂等的。否则,@DELETE 会受到青睐。
关于java - 使用resteasy/jax-rs从请求有效负载接收两种类型的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7827926/