Scala 如何在Akka Http中为HttpResponse设置MediaType?
我正在构建一个端点,它在Akka HTTP的帮助下返回图像。我从AWS S3获得的图像是一个Scala 如何在Akka Http中为HttpResponse设置MediaType?,scala,akka,akka-http,Scala,Akka,Akka Http,我正在构建一个端点,它在Akka HTTP的帮助下返回图像。我从AWS S3获得的图像是一个的testring流。每个图像都有自己的MediaType(image/gif,image/png,…) 当我们有媒体类型字符串表示时,如何构造具有特定媒体类型的HttpResponse实体 HttpResponse(StatusCodes.OK, entity = HttpEntity(image)) 你可以用- val httpResponse = HttpEntity(MediaTypes.`im
的testring流。每个图像都有自己的MediaType
(image/gif
,image/png
,…)
当我们有媒体类型字符串表示时,如何构造具有特定媒体类型的HttpResponse实体
HttpResponse(StatusCodes.OK, entity = HttpEntity(image))
你可以用-
val httpResponse = HttpEntity(MediaTypes.`image/gif`, <byte array of your image>)
val-httpResponse=HttpEntity(MediaTypes.`image/gif`,)
您可以使用-
val httpResponse = HttpEntity(MediaTypes.`image/gif`, <byte array of your image>)
val-httpResponse=HttpEntity(MediaTypes.`image/gif`,)
要从字符串中获取MediaType
,请使用:
尝试分析给定字符串中的MediaType值。如果成功返回右侧(mediaType),否则返回左侧(错误)
例如:
MediaType.parse("image/gif") // Right(MediaTypes.`image/gif`)
可以使用ContentType
。要从上面的MediaType
获取ContentType
,可以执行以下操作:
val mediaTypeStr: String = ???
val mediaType: MediaType =
MediaType.parse(mediaTypeStr).toOption.getOrElse(/*a fallback/default MediaType*/)
val entity = HttpEntity(ContentType(mediaType), ...)
要从字符串中获取MediaType
,请使用:
尝试分析给定字符串中的MediaType值。如果成功返回右侧(mediaType),否则返回左侧(错误)
例如:
MediaType.parse("image/gif") // Right(MediaTypes.`image/gif`)
可以使用ContentType
。要从上面的MediaType
获取ContentType
,可以执行以下操作:
val mediaTypeStr: String = ???
val mediaType: MediaType =
MediaType.parse(mediaTypeStr).toOption.getOrElse(/*a fallback/default MediaType*/)
val entity = HttpEntity(ContentType(mediaType), ...)
有一种方法可以通过扩展获取媒体类型
导入akka.http.scaladsl.model_
val mediaType:mediaType=MediaTypes.forExtension(“png”)有一种通过扩展获取媒体类型的方法
导入akka.http.scaladsl.model_
val mediaType:mediaType=MediaTypes.forExtension(“png”)只有当所有图像都具有相同的mediaType
时,这才是正确的。但我至少有3个MediaType。因此,问题是如何从字符串值动态创建MediaType
?只有在所有图像都具有相同的MediaType
的情况下,这才是正确的。但我至少有3个MediaType。因此,问题是如何从String
值动态创建MediaType
?