В этом руководстве мы покажем вам два способа получить заголовок HTTP-запроса в JAX-RS:
, Внедрить напрямую с помощью
@ HeaderParam
, Прагматично через
@ Context
1. Пример @HeaderParam
В этом примере он получает браузер « user-agent » из заголовка запроса.
import javax.ws.rs.GET; import javax.ws.rs.HeaderParam; import javax.ws.rs.Path; import javax.ws.rs.core.Response; @Path("/users") public class UserService { @GET @Path("/get") public Response addUser(@HeaderParam("user-agent") String userAgent) { return Response.status(200) .entity("addUser is called, userAgent : " + userAgent) .build(); } }
Доступ по шаблону URI « /users/get » с помощью FireFox, смотрите следующий результат:
addUser is called, userAgent : Mozilla/5.0 (Windows NT 6.1; rv:5.0) Gecko/20100101 Firefox/5.0
2. Пример @Context
В качестве альтернативы, вы можете использовать
@ Context
для прямого получения`
javax.ws.rs.core.HttpHeaders
”, см. Эквивалентную версию для получения браузера «
user-agent
«.
import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.core.Context; import javax.ws.rs.core.HttpHeaders; import javax.ws.rs.core.Response; @Path("/users") public class UserService { @GET @Path("/get") public Response addUser(@Context HttpHeaders headers) { String userAgent = headers.getRequestHeader("user-agent").get(0); return Response.status(200) .entity("addUser is called, userAgent : " + userAgent) .build(); } }
Доступ через шаблон URI « /users/get » с помощью Google Chrome, смотрите следующий результат:
addUser is called, userAgent : Mozilla/5.0 (Windows NT 6.1) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.112 Safari/534.30
-
Перечислите все заголовки запроса ** Вы можете перечислить все доступные заголовки HTTP-запроса с помощью следующего кода:
for(String header : headers.getRequestHeaders().keySet()){ System.out.println(header); }
Скачать исходный код
Загрузить его - ссылка://wp-content/uploads/2011/07/JAX-RS-Get-HTTP-Header-Example.zip[JAX-RS-Get-HTTP-Header-Example.zip](6 КБ)
Рекомендации
HttpHeaders JavaDoc], http://jsr311.java.net/nonav/releases/1.1/javax/ws/rs/HeaderParam.html [JAX-RS
@HeaderParam JavaDoc], http://en.wikipedia.org/wiki/List of HTTP header fields[Full list of
Поля заголовка HTTP]
ссылка://тег/http-заголовок/[заголовок http]ссылка://тег/jax-rs/[jax-rs]