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) {
Map headerMap = 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.