Scala 如何在Akka Http中为HttpResponse设置MediaType?

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

我正在构建一个端点,它在Akka HTTP的帮助下返回图像。我从AWS S3获得的图像是一个
的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