Java(Jersey)使用和不使用参数

时间:2015-06-30 15:15:17

标签: java web-services rest jersey uri

我正在尝试通过GET方法从控制台应用程序向Web服务发送一些参数。我在下面提供的代码在两端都“同意”时起作用,因为在控制台app和webservice中都有相同数量的参数或者没有。

我需要能够处理GET请求,具体取决于数量和发送的参数。例如,我使用3个参数,但有时我可能只发送1,2或根本没有,依赖于此,我将调用适当的函数,而不是listofstuff()。如果可能的话,我该怎么办,管理这些场景?

网络服务代码:

@GET
@Produces(MediaType.TEXT_PLAIN)
public String returnList(
        @QueryParam("id_nr") String sid_nr,
        @QueryParam("name") String name,
        @QueryParam("value") String svalue)
{
        int id_nr=Integer.parseInt(sid_nr);
        int value=Integer.parseInt(svalue);

        return listofstuff(id_nr,name,value).toString();
}

控制台应用程序代码:

ClientConfig config = new ClientConfig();
Client client = ClientBuilder.newClient(config);
WebTarget target = client.target(getBaseURI());
int id_nr=1;
String name="Ion";
int value=1;
System.out.println(target.path("rest").path("hello").queryParam("id_nr", id_nr).queryParam("name", name).queryParam("value", value).request().accept(MediaType.TEXT_PLAIN).get(Response.class).toString());
System.out.println(target.path("rest").path("hello").queryParam("id_nr", id_nr).queryParam("name", name).queryParam("value", value).request().accept(MediaType.TEXT_PLAIN).get(String.class)); 

1 个答案:

答案 0 :(得分:0)

@DefaultValue("0")

在@QueryParam()之前添加它是一种解决方法。不完全是我想要的,但我可以使用它,