球衣。为什么参数不传?

jersey. why doesn't parameter pass?

我有以下球衣方法:

    @POST
    @Path("path")
    @Produces({MediaType.APPLICATION_JSON})
    public Response isSellableOnline(@QueryParam("productCodes") final List<String> productCodes,
                                     @QueryParam("storeName") final String storeName,
                                     @Context HttpServletRequest request) {

          System.out.println(storeName);
          System.out.println(productCodes.size());
          ...
    }

在休息客户端我发送以下数据:

在控制台中我看到了

null 0

我做错了什么?

您正在从查询字符串中读取参数,其格式为:

http://yourserver/your/service?param1=foo&param2=bar
                              ^ start of query string

但是您将参数作为表单的一部分发送。

更改您在服务中使用参数的方式:

@POST
@Path("path")
@Produces({MediaType.APPLICATION_JSON})
public Response isSellableOnline(@FormParam("productCodes") final List<String> productCodes,
                                 @FormParam("storeName") final String storeName,
                                 @Context HttpServletRequest request) {

      System.out.println(storeName);
      System.out.println(productCodes.size());
      ...
}