Передать параметр в веб-сервис REST через URL - PullRequest
3 голосов
/ 09 ноября 2010

Я создаю небольшой веб-сервис REST с использованием Netbeans.Это мой код:

private UriInfo context;
private String name;

public GenericResource() {
}

@GET
@Produces("text/html")
public String getHtml() {
    //TODO return proper representation object
    return "Hello "+ name;
}


@PUT
@Consumes("text/html")
public void putHtml(String name) {
    this.name = name;
}

Я вызываю метод get нормально, так как когда я вызываю http://localhost:8080/RestWebApp/resources/greeting, я получаю "Hello null", но я пытаюсь передать параметр, используя http://localhost:8080/RestWebApp/resources/greeting?name=Krt_Malta но метод PUT не вызывается ... Это правильный способ передачи параметра или я что-то упускаю?

Я новичок в Rest bdw, так что извините, если этопростой вопрос.

Спасибо!:) Krt_Malta

Ответы [ 4 ]

0 голосов
/ 01 августа 2015

Вы можете установить:

@PUT
@path{/putHtm}
@Consumes("text/html")
public void putHtml(String name) {
    this.name = name;
}

, и если вы используете что-то вроде библиотеки Google Volley, вы можете сделать.1008 *

0 голосов
/ 09 ноября 2010

Если вы строите HTTP-заголовок самостоятельно, вы должны использовать POST вместо GET:

GET /RestWebApp/resources/greeting?name=Krt_Malta HTTP/1.0

против

POST /RestWebApp/resources/greeting?name=Krt_Malta HTTP/1.0

Если вы используете HTML-форму, вы должны установить для атрибута метода значение «PUT»:

<form action="/RestWebApp/resources/greeting" method="PUT">
0 голосов
/ 23 октября 2013

Чтобы JAX-RS мог представить метод, помеченный @PUT, вам необходимо отправить запрос PUT. Обычные браузеры этого не делают, но можно использовать клиентскую библиотеку cURL или HTTP.

Чтобы сопоставить параметр запроса с аргументом метода, JAX-RS предоставляет аннотацию @QueryParam.

public void putWithQueryParam(@QueryParam("name") String name) {
  // do something
}
0 голосов
/ 09 ноября 2010

Второй URL-адрес представляет собой обычный запрос GET. Чтобы передать данные в запрос PUT, вы должны передать их, используя форму. Насколько я знаю, URL зарезервирован для GET.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...