2013-02-14 114 views
3

我在想如何檢查Play Framework 2.1中的HTTP請求。我能找到的文檔上的唯一信息是通過conf/routes機制:Play Framework檢查HTTP請求

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

但這隻會讓我們擺脫路徑參數id。如何訪問請求的其他部分,例如標題或查詢參數?換句話說,Play的JAX-RS @HeaderParam,@FormParam,@QueryParam等同於什麼?

+0

您使用Java或斯卡拉你的控制器的代碼是什麼? – biesior 2013-02-14 16:26:20

回答

10

在一個動作,你可以使用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"); 
    ... 
} 

你可以看看API來JavaScala

+0

謝謝nico_ekito!如果你能指點我一些更廣泛的指南,我也會非常高興:[網站](http://www.playframework.com/documentation/2.1.0/ScalaHome)上的指南似乎只是搔癢表面。 – ticofab 2013-02-14 13:52:09

+0

我不知道任何特定的指南,而不是官方的文檔。還有一些書在那裏http://bit.ly/playscala和http://bit.ly/playjava – 2013-02-14 16:46:54

+1

請至少提供請求()來自哪裏?爲了新手的緣故。 – supertonsky 2014-04-23 04:14:05

4

這條線的工作對我來說:

implicit request => val User-Agent:String = request.headers.get("User-Agent").get 
1

更好地利用恆定的比硬編碼字符串,在斯卡拉

import play.mvc.Http 

val userAgent: String = request.headers.get(Http.HeaderNames.USER_AGENT).get