球衣。为什么参数不通过?

时间:2015-01-21 16:47:46

标签: java rest http jersey

我有以下球衣方法:

    @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());
          ...
    }

在rest客户端我发送以下数据: enter image description here

在控制台中我看到了

  

空   0

我错了什么?

1 个答案:

答案 0 :(得分:4)

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

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());
      ...
}