JAX RS – 13 – @HeaderParam

Merhaba Arkadaslar ,
Bu bolumde Request Header’larin inject edilmesini inceleyecegiz.
Bunun icin @HeaderParam annotation ve javax.ws.rs.core.HttpHeaders ‘i kullanabiliriz.

The @HeaderParam annotation allows you to map a request HTTP header 
to your method invocation.

Ornegimizi inceleyelim ;

LoginResource.java

package _07.headerParam.service;

import javax.ws.rs.GET;
import javax.ws.rs.HeaderParam;
import javax.ws.rs.Path;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.HttpHeaders;

@Path("/login-headerParam")
public class LoginResource {

	@GET
	@Path("/getInfo")
	public String getInfo(@HeaderParam("user-agent") String userAgent) {
		String message = "getInfo is called. <br/>" + "User Agent" + userAgent;
		return message;
	}

	@GET
	@Path("/getInfoWithContexth")
	public String getInfoWithContexth(@Context HttpHeaders headers) {
		String message = " getInfoWithContexth is called";

		for (String headerName : headers.getRequestHeaders().keySet()) {
			message = message + "<br/>" + headerName + " : " + headers.getRequestHeader(headerName);
		}
		return message;
	}

}

javax.ws.rs.core.HttpHeaders

public interface HttpHeaders {
    public List<String> getRequestHeader(String name);
    public MultivaluedMap<String, String> getRequestHeaders();
...
}

getInfo metodunda @HeaderParam annotation kullandik user-agent header parametresini alabiliriz.

http://localhost:8080/injavawetrust.resteasy.tutorial/login-headerParam/getInfo
http://localhost:8080/injavawetrust.jersey.tutorial/login-headerParam/getInfo

headerparam-example

Bir baska yontem olarak @Context annotation ile HttpHeaders ‘i inject edelim.
getRequestHeaders metodu ve getRequestHeader yardimiyla Http Header bilgilerini ulasabiliriz.

http://localhost:8080/injavawetrust.jersey.tutorial/login-headerParam/getInfoWithContexth
http://localhost:8080/injavawetrust.resteasy.tutorial/login-headerParam/getInfoWithContexth

headerparam-example2

Github kaynak kodlar / source folder
injavawetrust.resteasy
injavawetrust.jersey

Yazimi burada sonlandiriyorum.
Herkese Bol Javali Gunler dilerim.
Be an oracle man , import java.*;
Levent Erguder
OCP, Java SE 6 Programmer
OCE, Java EE 6 Web Component Developer

Print Friendly, PDF & Email

Leave a Reply

Your email address will not be published. Required fields are marked *