我正在 Play 中创建一个 Scala 函数!验证对我的网络服务的请求的应用程序。身份验证基本上是 HMAC 身份验证。该方法接收要使用的 bodyParser 的类型。由于我不知道 -bodyParser 的类型,我如何将 request.body 转换为我可以在其上运行 MD5 处理的通用 Array[Byte]?
def Authenticated[T](authType : AuthenticationType, bodyParser : BodyParser[T])(f : (Request[T]) => Result) = {
Action(bodyParser) { request =>
// Authentication logic starts here
// TODO: Something like: var bodyData : Array[Byte] = request.body.toByteArray()
// The rest is easy...
var contentMD5 = calculateMD5(bodyDat)
f(request)
}
}
最佳答案
Play 收到的任何请求主体都可以解析为 Http.RawBuffer
它可以给出请求主体的纯原始字节数组表示。
您要查找的代码行是
var bodyData : Array[Byte] = request.body.asRaw.asBytes()
关于scala - 如何将 request.body 转换为字节数组以计算 MD5?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11622543/