JAX-RSでHTTPリクエストヘッダを参照する

知っていればなんてことない話。

javax.ws.rs.core.HttpHeadersクラスを使います。
以下サンプル。import文は省略してます。

/**
 * @author jabaraster
 */
@Path("header")
public class HeaderResource {

    /**
     * @param pHeaders
     * @return
     */
    @GET
    @Path("")
    @Produces({ MediaType.TEXT_PLAIN })
    public String getHeaders(@Context final HttpHeaders pHeaders) {
        final StringBuilder s = new StringBuilder();
        for (final Entry<String, List<String>> header : pHeaders.getRequestHeaders().entrySet()) {
            s.append(header.getKey()).append("\t").append(header.getValue());
            s.append("\n");
        }
        return new String(s);
    }
}

しかしJAX-RSってほんと便利でシンプルで美しい。