web服务-使用Lift输出web服务请求参数(GET/POST)



我只想检查在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 
      //...
    }
}

您可以通过Req对象访问它们。下面的代码将遍历所有的值,您可以用它做您需要做的事情。

for(s <- S.request; r <- s.params) {
    val (paramName:String, paramVals:List[String]) = r
}

如果只需要参数名称,可以使用s.paramNames代替s.params

完整的api文档在这里:http://scala-tools.org/mvnsites/liftweb/lift-webkit/scaladocs/net/liftweb/http/Req.html

最新更新