我只想检查REST请求中发送的参数。我见过像S.param("paramName")
或S.params("??")
这样的方法,但我只想查看所有参数。我该怎么办?
已在此处查看:http://simply.liftweb.net/index-Chapter-11.html,以及许多SO主题,但只查找如何获取某些参数。
修改向代码添加无效工作建议
Edit2 发现问题,我注释掉了请求的返回值:)
我目前的代码:
object WebserviceHandler extends RestHelper {
serve {
case "somePath" :: Nil JsonPost _ =>
//1st try
for(s <- S.request; r <- s.params) { //compiler error: "could not find implicit value for parameter c: (Unit) => net.liftweb.http.LiftResponse"
val (paramName:String, paramVals:List[String]) = r
}
//2nd try
S.request.foreach(x =>
x.paramNames.foreach(p =>
println(p) //compiler error: "scala is not an enclosing class"
)
);
//Extraction.decompose(someList) //<--- Problem- this line was commented
//...
}
}
提前致谢。
答案 0 :(得分:1)
您可以通过Req对象访问它们。下面的代码将遍历所有值,您可以使用它来完成所需的操作。
for(s <- S.request; r <- s.params) {
val (paramName:String, paramVals:List[String]) = r
}
如果您只想要参数名称,可以使用s.paramNames
代替s.params
完整的api doc:http://scala-tools.org/mvnsites/liftweb/lift-webkit/scaladocs/net/liftweb/http/Req.html