JAX-RS headerparam used for binding of request header values and retrieving of header param value in controller. In JAX-RS, binding of Header variable in the controller/service method is very easy by using @HeaderParam
annotation.
1. Maven Dependency for Jersey JAX-RS headerparam
You can choose version of jersey as per your choice.
com.sun.jersey jersey-server 1.9
2. Binding with one header variable
package com.mysoftkey.jaxrs; import java.util.HashMap; import java.util.Map; import javax.ws.rs.GET; import javax.ws.rs.HeaderParam; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.Context; import javax.ws.rs.core.HttpHeaders; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; /** * This Jersey implementation of service class is used to demonstrate to get values from Request Header. * * @author Ranjeet Jha * */ @Path("/headerParam") public class HeaderParamService { /** * In this method , retrieving values from Request header. * * service end point: http://localhost:8080/jersey/headerParam/get * * @param userAgent * @return */ @GET @Path("/get") public Response getUserAgent(@HeaderParam("user-agent") String userAgent) { return Response.status(200).entity("User-Agent : " + userAgent).build(); } }
Service URL: http://localhost:8080/jersey/headerParam/get
Output :
User-Agent : Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36
3. Get All Header Variable from Request Header
/** * In this method , retrieving all available key/value from Request header. * * service end point: http://localhost:8080/jersey/headerParam/list * @param headers * @return */ @GET @Path("/list") @Produces(MediaType.APPLICATION_JSON) public Response getHeaders(@Context HttpHeaders headers) { MapheaderMap = new HashMap (); for (String header : headers.getRequestHeaders().keySet()) { headerMap.put(header, headers.getRequestHeader(header).get(0)); } return Response.status(200).entity(headerMap).build(); }
Service URL: http://localhost:8080/jersey/headerParam/list
Output :
{ connection: "keep-alive", accept-language: "en-GB,en-US;q=0.8,en;q=0.6", host: "localhost:8080", accept: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", user-agent: "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36", accept-encoding: "gzip, deflate, sdch", upgrade-insecure-requests: "1" }
4.Download Source Code for JAX-RS Headerparam example
Download source code of JAX-RS: Jersey Request HeaderParam Example
5.References
You can find the JAX-RS tutorials for JAX-RS headerparam in Jersey rest API
Happy learning for this JAX-RS tutorial for retriving header param value from request header.