Play Framework 2.0.3(scala)では、リクエスト[_]のサイズ(バイト単位)をどのように決定しますか?Play 2.0.xでリクエストのサイズをどのように取得しますか?
私たちは、この情報をログ収集の目的で取得しようとしています。
我々は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
}
リチャードに感謝、POST/PUTリクエストにContent-Lengthヘッダーを使用しました – Ash