Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala Playframework POST参数_Scala_Playframework - Fatal编程技术网

Scala Playframework POST参数

Scala Playframework POST参数,scala,playframework,Scala,Playframework,我试图用PlayFrameworkScala(2.3)做一些非常简单的事情:创建一个路由帖子并获取帖子参数 路线定义 POST /ff/user controllers.Application.createUser 控制器 def createUser = Action.async { request => val user = request.queryString.get("user").flatMap(_.headOption)

我试图用PlayFrameworkScala(2.3)做一些非常简单的事情:创建一个路由帖子并获取帖子参数

路线定义

POST    /ff/user                controllers.Application.createUser
控制器

def createUser = Action.async { request =>
    val user = request.queryString.get("user").flatMap(_.headOption)
    val email = request.queryString.get("email").flatMap(_.headOption)
    val firstname = request.queryString.get("firstname").flatMap(_.headOption)
    val lastname = request.queryString.get("lastname").flatMap(_.headOption)

    Logger.debug("Create User")
    Logger.debug(s"user=$user")
    Logger.debug(s"email=$email")

    Ok("Youpi")
}
当我向/ff/user发送请求时,日志显示:user=None,email=None。 我不明白他们为什么“没有”。怎么了


感谢您的帮助。

当您像这样使用
POST
时,您可能希望查看
请求
参数上的
正文
字段,该字段将包含已发布的表单。您通常不会将查询字符串用于
POST
请求(更多信息)。所以,这可能看起来像:

def createUser = Action.async { request =>
    val user = request.body.asFormUrlEncoded.get.get("user").head
    Future(Ok())
}
def createUser = Action.async(parse.urlFormEncoded) { request =>
   //body is already treated as a Map[String, Seq[String]] because of the parameter passed to async
   val user = request.body("user").head 
   Future(Ok())
}
您可能还希望使用提供解析正文的
Action.async
重载。例如,它可能看起来像:

def createUser = Action.async { request =>
    val user = request.body.asFormUrlEncoded.get.get("user").head
    Future(Ok())
}
def createUser = Action.async(parse.urlFormEncoded) { request =>
   //body is already treated as a Map[String, Seq[String]] because of the parameter passed to async
   val user = request.body("user").head 
   Future(Ok())
}