2012-03-28 2 views
8

Я создал веб-сервис REST с некоторыми веб-методами. Но я не получаю, чтобы это передавало параметры этим методам.REST передача параметров с Java

I.E.

@GET 
@Path("hello") 
@Produces(MediaType.TEXT_PLAIN) 
public String hello(String firstName, String lastName){ 

    return "Hello " + firstname + " " + lastname 
} 

Как бы я вызвал этот метод и как передать параметры firstname и lastname? я пытался что-то вроде этого:

ClientConfig config = new DefaultClientConfig(); 

Client client = Client.create(config); 

WebResource service = client.resource(getBaseURI()); 

ClientResponse response = service.path("hello") 
.accept(MediaType.TEXT_PLAIN).put(ClientResponse.class); 

Но где я могу добавить параметры?

Спасибо за вашу помощь, наилучшими пожеланиями, Крис

ответ

6

This учебник должен помочь. Чтобы включить параметры, вам нужно будет использовать команду @PathParam, как показано в this предыдущей SO Post.

+0

спасибо помог мне много. Но что, если мой метод хочет массив строк? – Chris

+0

@Chris: Это должно помочь: http://stackoverflow.com/questions/5484209/pass-array-as-a-parameter-in-restful-webservice – npinti

+0

Большое спасибо. Эта ссылка была также полезной для контекста вашей последней ссылки: http://stackoverflow.com/questions/5718575/how-can-i-grab-all-query-parameters-in-jersey-jaxrs – Chris

8

Если вы используете SpringMVC для разработки REST API вы можете использовать

@RequestParam("PARAMETER_NAME"); 

В случае джерси вы можете использовать

@QueryParam("PARAMETER_NAME"); 

Method выглядеть

public String hello(@RequestParam("firstName")String firstName, @RequestParam("lastName")String lastName){ 

return "Hello " + firstname + " " + lastname 

}

2

Это будет помочь вам

ClientResponse response = resource.queryParams(formData).post(ClientResponse.class, formData); 

где FormData является

MultivaluedMap formData = new MultivaluedMapImpl(); 


formData.add("Key","Value"); 
formData.add("Key","Value"); 
... 
... 
... 
formData.add("Key","Value"); 
+0

Это выглядело многообещающим для меня, но ClientResponse, похоже, не доступен в Android ... –

Смежные вопросы