对于 Play 文档 ( https://www.playframework.com/documentation/2.6.x/ScalaLogging )中给出的以下代码
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 正文,例如 {"---"} (当给出无效的 JSON 时,默认 BodyParser 会立即引发错误,这不会让我有机会记录该错误。我读过 Play 中的 TolerantText BodyParser 不会立即引发错误,因为它忽略了内容标题并且不会尝试根据内容标头解析正文。)
我希望能够使用 TolerantText 正文解析器或任何不会立即引发错误的东西,这样我就可以在该特定操作中发生这种情况时进行记录。