如何在HTTP请求中将JSON作为查询参数传递?

时间:2016-09-08 13:56:59

标签: rest resteasy

我正在使用RESTEasy堆栈来实现基于REST的客户端和服务器。我有一个处理POST请求的服务,如下所示:

@POST
@Path("/this")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public String testPost(@QueryParam("thing") String thing) {
    ...
}

当我从Postman或REST客户端调用以下URI时:

http://ip:port/base/this?thing={"id":"abc"}

我总是得到错误

java.net.URISyntaxException: Illegal character in query at index (pointing to =)

这是什么原因?

1 个答案:

答案 0 :(得分:0)

如果您正在尝试解析POST请求,则应使用@FormParam而不是@QueryParam。然后,您可以使帖子请求执行此类操作(使用curl)

curl -i -X POST -H "Content-Type: application/json" -d thing="{\"id\":\"abc\"}" http://ip:port/base/this