Play Framework检查HTTP请求

tic*_*fab 4 webserver jax-rs jersey playframework playframework-2.1

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

GET   /clients/:id          controllers.Clients.show(id: Long)  
Run Code Online (Sandbox Code Playgroud)

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

nde*_*rge 12

在一个操作中,您可以使用该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");
  ...
}
Run Code Online (Sandbox Code Playgroud)

您可以查看API for JavaScala.


Ray*_*non 5

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

import play.mvc.Http

val userAgent: String = request.headers.get(Http.HeaderNames.USER_AGENT).get
Run Code Online (Sandbox Code Playgroud)