I was wondering how to examine an HTTP request in Play Framework 2.1. The only information I can find on the documentation is via the conf/routes
mechanism:
GET /clients/:id controllers.Clients.show(id: Long)
but this will only allow us to get the parameter id
from the path. How do I access other part of the request, such as header or query params? In other words, what are Play's equivalents of JAX-RS @HeaderParam
, @FormParam
, @QueryParam
and such?
Within an action, you can get the request header using the request()
method, for instance, in Java:
public static Result index() {
// example of a Header
String userAgent = request().getHeader("User-Agent");
// example of a query parameter
String q = request().getQueryString("q");
...
}
You can take a look at the API for Java or Scala.
Better use a constant than a hardcoded String, in Scala the code is
import play.mvc.Http
val userAgent: String = request.headers.get(Http.HeaderNames.USER_AGENT).get
This line worked for me:
implicit request => val User-Agent:String = request.headers.get("User-Agent").get
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With