Jersey客户端:字符串数组作为参数

时间:2014-02-27 14:01:32

标签: java rest jersey jersey-client

我有一个方法的宁静的网络服务:

@GET
@Path("/get/{id}")
public Operation getData(@PathParam("id") String... id) 
{
    //some code
    return data;
} 

我注意到了MultivaluedMap,但这是针对查询参数的。

正如您所看到的,这里我只能添加一个id,而不是字符串数组。我的目标是添加数组作为参数。

 WebResource resource = Client.create().resource(getBaseURI()).path("get").path(id);

如何(与客户端)传递Strings数组作为球衣的参数? 谢谢你的帮助。

2 个答案:

答案 0 :(得分:1)

一般情况下,我只使用Collection@QueryParam来解决这个问题。

类似的东西:

@GET
@Path("/get/")
public Operation getData(@QueryParam("id") Set<String> ids) 
{
    //some code
    return data;
}

答案 1 :(得分:0)

According to JAX-RS specification,接收集合为@PathParam的唯一方法是将其作为PathSegment列表接收。
另一种方法是将所有String加入';'并将其作为单个String传递,然后在服务器端将其拆分 也。也许你可以切换到@QueryParam? @PathParam并非旨在将多个值作为单个参数传递。