我想通過GET方法從控制檯應用程序發送一些參數到Web服務。我在下面提供的代碼在兩端「同意」的情況下工作,因爲在控制檯應用和web服務中都有相同數量的參數或沒有參數。Java(澤西島)處理帶有和不帶參數的GET方法請求
我需要能夠處理GET請求取決於數量和哪些參數發送。例如,我使用3個參數,但有時我可能只發送1,2或根本沒有,並且根據這個,我將一直調用適當的函數,而不是listofstuff()。如果可能的話,我該怎麼做,管理這些場景?
web服務代碼:
@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));
你不能用'QueryParam'重載方法。另見http://stackoverflow.com/questions/10030045/how-can-i-overload-a-method-with-queryparam-in-jersey-spring – Qwerky