我将@POST
方法参数注释为@FormParam
,希望它只需要以HTTP格式提交,而不是作为查询字符串参数提交:
@POST
@Path("domain/registerEntity")
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
public Response registerEntity(@FormParam("param1") String param1,
@FormParam("param2") String param2) throws UnsupportedEncodingException {
...
}
但是,我可以发布一个网址 * / domain / registerEntity?param1 = X& param2 = Y ,该方法仍会将查询参数读入变量 param1 和 param2 即使没有发送任何表单。我的jax-rs
实施是Apache CXF
。
如何确保我的POST忽略所有查询参数,并且只期望它们作为表单参数进入?
我在Chrome Poster
和HttpClient
中对此进行了测试,并且它在两个客户端都以相同的方式响应。