En Play Framework 2.0.3 (scala), ¿cómo se determina el tamaño (en bytes) de cualquier Solicitud [_]?¿Cómo se obtiene el tamaño de una Solicitud en Play 2.0.x?
Estamos tratando de obtener esta información para fines de registro.
Es de esperar que algún valor de request.body.asRaw, pero siempre obtener Ninguno:
def logRawRequest[A](request: Request[A]) {
request.body match {
case c: AnyContent => println("Raw: "+c.asRaw)
}
}
No debe ser algo simple que nos falta, ¿verdad?
¡Gracias por las respuestas útiles! Resulta que la cabecera Content-Length sólo está presente durante la POST/PUT, así que lo utilizan para aquellos, y de repliegue a la longitud de la consulta para GET/BORRAR, así:
val requestSize = request.method match {
case "POST" | "PUT" => request.headers.get(CONTENT_LENGTH).map(_.toInt).getOrElse(-1)
case _ => request.toString().length
}
Gracias Richard, terminamos usando el encabezado Content-Length para las solicitudes POST/PUT – Ash