对于播放文件(https://www.playframework.com/documentation/2.6.x/ScalaLogging)播放2.6.x的斯卡拉如何指定TolerantText正文分析器用于行动
class AccessLoggingAction @Inject() (parser: BodyParsers.Default)(implicit ec: ExecutionContext) extends ActionBuilderImpl(parser) {
val accessLogger = Logger("access")
override def invokeBlock[A](request: Request[A], block: (Request[A]) => Future[Result]) = {
accessLogger.info(s"method=${request.method} uri=${request.uri} remote-address=${request.remoteAddress}")
block(request)
}
}
上面的代码使用BodyParsers.Default
给出下面的一段代码,我怎么会用一个TolerantText BodyParser代替?它似乎不存在BodyParsers.TolerantText
存在?
我想使用TolerantText BodyParser,这样我就可以在提交POST请求的事件中记录错误,以便请求指定JSON的内容类型并发送无效的JSON主体,例如{“ - - “} (Default BodyParser在给出无效的JSON时立即抛出一个错误,这不会让我有机会记录该错误。我读过Play中的TolerantText BodyParser不会立即抛出错误,因为它会忽略内容头,并不会尝试根据内容头来解析主体)。
我想能够使用TolerantText身体解析器或任何不立即抛出错误的东西,所以我可以记录何时发生这种特定行为。
注入'PlayBodyParsers'代替 – rethab
我试着_PlayBodyParsers_注射用以下 '''类AccessLoggingAction @Inject( )(解析器:PlayBodyParsers.tolerantText)(隐含的EC:ExecutionContext)扩展ActionBuilderImpl(解析器){... ''' 上面似乎不工作,并与上述,我得到以下错误: (_Cannot解析符号tolerantText_) 任何想法,如何解决这个问题? 谢谢你的时间。 – user8679288