有沒有辦法訪問所有的請求參數,而不管HTTP方法?我沒有在Play Framework 2.0中找到方法,而是傾注了文檔和API。Request.params在Play Framework 2.0中沒有了
我在接受POST和GET的網站上進行搜索。網站上的自定義跟蹤會檢查傳入的所有參數,以確定存儲跟蹤數據的正確方式。
在Play框架1.2.x的,我能夠從請求訪問參數在一個控制器,具有
request.params.get("keywords")
request.params.get("location")
request.params.all()
隨着播放2.0,這不再是這種情況。 Request不再有方法params
,只有queryString
和queryString只能使用GET而不是POST。
在Controller Action中定義每個可能的跟蹤參數是不可行的,它們是動態的。
UPDATE:一個可能的解決辦法是使用Body Parsers。
根據請求的內容類型,使用適當的分析器,例如, 應用/表單網址編碼 VS 應用/ JSON
這是粗地圖結合POST參數和GET參數,並優先GET參數。
val params: collection.mutable.Map[String, Seq[String]] = collection.mutable.Map()
params ++= request.body.asFormUrlEncoded.getOrElse[Map[String, Seq[String]]] { Map.empty }
params ++= request.queryString
Action(parse.fooContentType){...}非常有用,感謝Body解析器鏈接! – virtualeyes 2012-05-29 12:02:49
您的答案應該作爲答案拆分出來,而不是作爲原始問題的編輯。 – 2012-07-10 14:59:35
我希望得到API支持的正確答案,而不是我現在正在工作的原始修復程序 – mguymon 2012-07-10 18:48:15