gpt4 book ai didi

scala - 从请求中提取 Spray.io Content-Type?

转载 作者:行者123 更新时间:2023-12-04 15:52:56 26 4
gpt4 key购买 nike

由于 Spray.io 在低级别定义内容类型,我如何简单地引用传入请求的内容类型?

这是一个简短的示例,其中图像是 PUT。

      put {
entity(as[Array[Byte]]) { data =>
complete{
val guid = Image.getGuid(id)
val fileExtension = // match a file extension to content-type here
val key = "%s-%s.%s" format (id, guid, fileExtension )
val o = new Image(key, contentType, data)
Image.store(o)
val m = Map("path" -> "/client/%s/img/%s.%s" format (id, guid, fileExtension))
HttpResponse(OK, generate(m))
}
}
}

鉴于上面的代码,提取内容类型的简单方法是什么?我可以简单地使用它来模式匹配到适当的 fileExtension .谢谢你的帮助。

最佳答案

您可以构建自己的指令来提取内容类型:

val contentType =
headerValuePF {
case `Content-Type`(ct) => ct
}

然后在您的 route 使用它:

  put {
entity(as[Array[Byte]]) { data =>
contentType { ct => // ct is instance of spray.http.ContentType
// ...
}
}
}

编辑 :如果您在夜间构建, MediaTypes已经包含文件扩展名,因此您可以使用那里的文件扩展名。在 1.1-M7 上,您必须按照您的建议提供自己的映射。

关于scala - 从请求中提取 Spray.io Content-Type?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16407130/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com