有没有办法访问所有的请求参数,而不管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