在FormParam中为null,在Jersey 2.0中为“charset = UTF-8”

时间:2013-07-31 14:15:22

标签: post jersey-2.0

我目前正在开发一个AngularJS项目,我正在使用内容类型“application / x-www-form-urlencoded;”调用一些休息服务。

在服务器端,我在版本2.0中使用Jersey。这是我对maven的依赖。

    <dependency>
        <groupId>org.glassfish.jersey.containers</groupId>
        <artifactId>jersey-container-servlet-core</artifactId>
        <version>2.0</version>
    </dependency>

在Chrome和IE7上工作正常。我的问题是Firefox在内容类型中添加了神秘的“charset = UTF-8”。

我做了一些测试,如果我使用POSTMAN并在内容类型中设置“application / x-www-form-urlencoded; charset = UTF-8”,则Jersey在所有FormParam参数中都为null

这是我在java中的方法的标题

@POST
@Produces(MediaType.APPLICATION_JSON)
@Path("movements/")
public Response movements(
        @FormParam("COMPTE_NO") String COMPTE_NO,
        @FormParam("COMPTE_BIDULE") String COMPTE_BIDULE,
        @FormParam("COMPTE_MACHIN") String COMPTE_MACHIN,

我试过这个标题

@POST
@Produces(MediaType.APPLICATION_JSON)
@Path("movements/")
@Consumes({MediaType.APPLICATION_FORM_URLENCODED + ";charset=UTF-8", 
           MediaType.APPLICATION_FORM_URLENCODED + "; charset=UTF-8",
           MediaType.APPLICATION_FORM_URLENCODED})
public Response movements(
        @FormParam("COMPTE_NO") String COMPTE_NO,
        @FormParam("COMPTE_BIDULE") String COMPTE_BIDULE,
        @FormParam("COMPTE_MACHIN") String COMPTE_MACHIN,

我有完全相同的问题。你有好主意吗 ? 提前谢谢。

1 个答案:

答案 0 :(得分:2)

这个问题是重复的。可以在Jersey and @FormParam not working when charset is specified in the Content-Type

上找到回复

泽西岛票和过滤器有一个解决方法可以在票上找到