2014-02-13 2 views
0

Я довольно новичок в Джерси. Я пытаюсь использовать GET и некоторые параметры для извлечения данных. url что-то вроде «http://www.example.com/products?searchKeyword=tv». У меня здесь два вопроса.вопросы о параметрах URL в Джерси

  1. Поскольку у меня есть параметр searchKeyword в моем запросе, мне нужно использовать аннотацию @Consume? Если нет, то в этом случае предполагается использовать @Consume?
  2. Чтобы получить параметр в запросе, следует использовать @QueryParam или @Context HttpServletRequest или @Context Uri. В этом случае я должен использовать @QueryParam. Если да, то когда я должен использовать два других?

ответ

2
  1. Там нет @Consume аннотаций. Предполагаю, вы имеете в виду @Consumes. Эта аннотация не имеет ничего общего с параметрами запроса. Он используется для content type negotiation:

    @Consumes аннотаций используются для указания MIME типов носителей представлений ресурса может принимать или потребляющие, от клиента.

  2. Да, вы должны использовать @QueryParam. Это the simplest thing that could possibly work. Требуется значение параметра запроса? @QueryParam построен специально для этого. Почему бы вам не использовать его?

    Если да, то когда следует использовать два других?

    Используйте @Context HttpServletRequest и @Context URI, когда вам действительно нужно использовать эти более сложные объекты. Конечно, вы получите значение параметра запроса из них, но это довольно общая задача, которая дала вам ярлык. @QueryParam предназначен для получения значений параметров запроса. @Context is for getting other things.

+0

Большое вам спасибо за ваш ответ. У меня есть еще один вопрос относительно Потребностей. Означает ли это, что «Потребление» используется только тогда, когда запрос имеет тело сообщения, например, когда я использую метод PUT или POST. Благодаря! –

+0

Точно, запросы GET не потребляют никакого контента. Это всего лишь URL с настраиваемыми параметрами, но параметры относятся к URL-адресу, а не к контенту в HTTP-запросе. – klimpond

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