5

我想知道如何在 Play Framework 2.1 中检查 HTTP 请求。我可以在文档中找到的唯一信息是通过以下conf/routes机制:

GET   /clients/:id          controllers.Clients.show(id: Long)  

但这只会让我们id从路径中获取参数。如何访问请求的其他部分,例如标头或查询参数?换句话说,Play 的 JAX-RS 等价物@HeaderParam@FormParam什么@QueryParam

4

3 回答 3

13

在一个动作中,您可以使用该方法获取请求标头request(),例如,在 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");
  ...
}

您可以查看JavaScala的 API 。

于 2013-02-14T12:00:46.793 回答
5

更好地使用常量而不是硬编码的字符串,在 Scala 中,代码是

import play.mvc.Http

val userAgent: String = request.headers.get(Http.HeaderNames.USER_AGENT).get
于 2017-02-25T23:34:24.263 回答
4

这条线对我有用:

implicit request => val User-Agent:String = request.headers.get("User-Agent").get
于 2014-01-09T09:30:31.553 回答