Spray HttpClient同步/阻塞调用

时间:2013-06-06 17:55:37

标签: scala spray

我意识到这可能与Spray的目的背道而驰,但我想知道在使用HttpClient对象时,我可以创建一个请求块,直到返回结果,而不是默认的非阻塞行为和后来发出回调。

我简要地查看了HttpClient的源代码,认为它是一个围绕同步私有http客户端超类的akka​​ actor,但这似乎并非如此。

1 个答案:

答案 0 :(得分:1)

喷雾HTTP客户端是否只返回scala Future?如果是这样,那么你应该能够做到:

import scala.concurrent._
import duration._

val fut = ... //call spray here
val result = Await.result(fut, 5 seconds)

这将阻止未来长达5秒钟等待它完成。如果超时,将抛出异常而不是获得结果。