對於播放文件(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