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,

我遇到了完全相同的问题。你有想法吗 ?提前致谢。

4

1 回答 1

2

这个问题是重复的。当在 Content-Type 中指定 charset 时,可以在Jersey 上找到响应并且 @FormParam 不起作用

球衣票和过滤器有一个变通方法可以在票上找到

于 2013-08-01T07:14:59.717 回答