【发布时间】:2013-07-10 06:13:31
【问题描述】:
当 Content-Type 标头中指定 charset 属性时,Jersey 2.0(使用 servlet 3.1)似乎无法解码参数。
例如考虑以下端点:
@POST
@Path("/hello")
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
@Produces(MediaType.APPLICATION_JSON)
public Response hello(@FormParam("name") String name) {
System.out.println(name);
return ok();
}
此 curl 请求有效:
curl -X POST -H "content-type: application/x-www-form-urlencoded" -d "name=tom" http://localhost:8080/sampleapp/hello
以下请求不起作用,name 参数是null:
curl -X POST -H "content-type: application/x-www-form-urlencoded; charset=UTF-8" -d "name=tom" http://localhost:8080/sampleapp/hello
我认为内容类型中的 charset=UTF-8 添加会破坏我的代码。
编辑:
我已经打开了官方票,以防这是一个错误:https://java.net/jira/browse/JERSEY-1978
【问题讨论】:
标签: java servlets http-headers jersey jax-rs