Получить заголовок HTTP в JAX-RS

В этом руководстве мы покажем вам два способа получить заголовок 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 КБ)

Рекомендации

@HeaderParam JavaDoc], http://en.wikipedia.org/wiki/List of HTTP header fields[Full list of

Поля заголовка HTTP]

ссылка://тег/http-заголовок/[заголовок http]ссылка://тег/jax-rs/[jax-rs]