प्ले फ्रेमवर्क 2.0.3 (स्कैला) में, आप किसी भी अनुरोध के आकार (बाइट्स) को कैसे निर्धारित करते हैं [_]?आप Play 2.0.x में किसी अनुरोध का आकार कैसे प्राप्त करते हैं?
हम लॉगिंग उद्देश्यों के लिए यह जानकारी प्राप्त करने का प्रयास कर रहे हैं।
हम request.body.asRaw से कुछ मूल्य उम्मीद होती है, लेकिन हम हमेशा प्राप्त कोई नहीं:
def logRawRequest[A](request: Request[A]) {
request.body match {
case c: AnyContent => println("Raw: "+c.asRaw)
}
}
वहाँ कुछ सरल है कि हम भूल रहे हैं, सही होना चाहिए?
उपयोगी उत्तर के लिए धन्यवाद! ऐसा लगता है कि सामग्री-लंबाई हेडर केवल पोस्ट/PUT के लिए मौजूद है, तो हम उन लोगों के लिए इसका इस्तेमाल करते हैं, और प्राप्त करने के लिए क्वेरी की लंबाई पर वापस आने/हटाएँ, इस तरह:
val requestSize = request.method match {
case "POST" | "PUT" => request.headers.get(CONTENT_LENGTH).map(_.toInt).getOrElse(-1)
case _ => request.toString().length
}
धन्यवाद रिचर्ड, हमने POST/PUT अनुरोधों के लिए सामग्री-लंबाई शीर्षलेख का उपयोग करके समाप्त किया – Ash