2
私はPlay Scala 2.5を使用しています。invokeBlockメソッドをオーバーライドする方法を知りたいので、jsonとしてリクエストのボディを取得することができます。オーバーライドとジェネリック型パラメータ
case class AuthenticatedRequest[A](val username: Option[String], val param: Option[String], request: Request[A]) extends WrappedRequest[A](request)
object AuthenticatedAction extends ActionBuilder[AuthenticatedRequest] {
/**
* logger used to log actions.
*/
val logger: Logger = Logger("mylogger")
def invokeBlock[A](request: Request[A], block: AuthenticatedRequest[A] => Future[Result]): Future[Result] = {
request.session.get("username") match {
case Some(username) => {
val param = (request.body.asJson.get \ "param").as[String]
block(new AuthenticatedRequest(Some(username), Some(param), request))
}
case None => Future.successful(Results.Forbidden)
}
}
}
は私がコンパイルした後、次の例外を持っている:
value asJson is not a member of type parameter A
[error] val param = (request.body.asJson.get \ "param").as[String]
リクエストにヘッダー 'Content-Type:application/json'がありますか? – Edwin
はい、コンテンツタイプが含まれています:application/json – jerome