相关疑难解决方法(0)

Scala Play 2.1:访问过滤器中的请求和响应主体

我正在编写一个过滤器来记录所有请求及其响应

    object LoggingFilter extends EssentialFilter {
  def apply(next: EssentialAction) = new EssentialAction {
    def apply(rh: RequestHeader) = {
      val start = System.currentTimeMillis

      def logTime(result: PlainResult): Result = result match {
        case simple @ SimpleResult(header, content) =>
            val time = System.currentTimeMillis - start
            play.Logger.info(s"${rh.method} ${rh.uri} took ${time}ms and returned ${header.status}")
            result
        case _ => result
      }
      next(rh).map {
        case plain: PlainResult => logTime(plain)
        case async: AsyncResult => async.transform(logTime)
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我还需要记录请求和响应主体。它们埋藏在迭代器/枚举器中,是否有一种更简单的方法来访问它们的主体,而不必详细了解迭代器如何工作的细节?否则如何将请求和响应正文转换为字符串?

scala playframework playframework-2.0

5
推荐指数
1
解决办法
1831
查看次数

标签 统计

playframework ×1

playframework-2.0 ×1

scala ×1