Scala 喷射解压HttpResponse

Scala 喷射解压HttpResponse,scala,gzip,spray-client,Scala,Gzip,Spray Client,我正在使用Spray API(Spray客户端)访问一个外部URL,并得到gzip的HttpResponse。我如何解压缩这个HttpResponse来获取它的实体(在我的例子中是json) 这里,json是gzip。如何解压?您需要使用管道和解码指令。像这样 修改该示例时,您的代码将如下所示: val pipeline: HttpRequest => Future[String] = ( sendReceive ~> decode(Gzip) ~> unmarsh

我正在使用Spray API(Spray客户端)访问一个外部URL,并得到gzip的HttpResponse。我如何解压缩这个HttpResponse来获取它的实体(在我的例子中是json)


这里,json是gzip。如何解压?

您需要使用管道和
解码指令。像这样

修改该示例时,您的代码将如下所示:

val pipeline: HttpRequest => Future[String] = (
  sendReceive
  ~> decode(Gzip)
  ~> unmarshal[String]
)
val response: Future[String] =
  pipeline(Get(uri))
如果你不想得到未来的好处,你可以等待回复


另一方面,您可以为响应使用并创建一个对象,然后将http响应直接解组到case类中,而无需处理json。

您需要使用管道和
decode
指令。像这样

修改该示例时,您的代码将如下所示:

val pipeline: HttpRequest => Future[String] = (
  sendReceive
  ~> decode(Gzip)
  ~> unmarshal[String]
)
val response: Future[String] =
  pipeline(Get(uri))
如果你不想得到未来的好处,你可以等待回复


另一方面,您可以为响应使用并创建一个对象,然后将http响应直接解组到case类中,而无需处理json。

很高兴我能提供帮助。别忘了接受答案。很高兴我能帮忙。别忘了接受答案。