我正在使用Spray API(spray-client)来访问外部URL,我正在使用gzip压缩HttpResponse.如何解压缩此HttpResponse以获取其实体(json,在我的情况下)?
val future: Future[HttpResponse] = (IO(Http) ? Get(uri)).mapTo[HttpResponse]
val response = Await.result(future, Duration.inf)
val json = response.entity
在这里,json被gzipped.我该如何解压缩?
您需要使用流水线和decode指令.就像在这个例子中.
修改该示例您的代码看起来像这样:
val pipeline: HttpRequest => Future[String] = (
  sendReceive
  ~> decode(Gzip)
  ~> unmarshal[String]
)
val response: Future[String] =
  pipeline(Get(uri))
如果您不想要Futures的好处,您可以等待响应.
另外,您可以使用spray-json为响应创建一个对象,然后将http响应直接解组到case类中,而不必处理json.
| 归档时间: | 
 | 
| 查看次数: | 633 次 | 
| 最近记录: |