Play Framework 2.0.3 (scala) では、Request[_] のサイズ (バイト単位) をどのように決定しますか?
ロギングの目的でこの情報を取得しようとしています。
request.body.asRaw から何らかの値を期待しますが、常に None を取得します。
def logRawRequest[A](request: Request[A]) {
request.body match {
case c: AnyContent => println("Raw: "+c.asRaw)
}
}
私たちが見逃している単純なものがあるに違いありませんよね?
役立つ回答をありがとう!Content-Length ヘッダーは POST/PUT にのみ存在することが判明したため、それらに使用し、次のように GET/DELETE のクエリの長さにフォールバックします。
val requestSize = request.method match {
case "POST" | "PUT" => request.headers.get(CONTENT_LENGTH).map(_.toInt).getOrElse(-1)
case _ => request.toString().length
}