我意识到这可能与Spray的目的背道而驰,但我想知道在使用HttpClient对象时,我可以创建一个请求块,直到返回结果,而不是默认的非阻塞行为和后来发出回调。
我简要地查看了HttpClient的源代码,认为它是一个围绕同步私有http客户端超类的akka actor,但这似乎并非如此。
答案 0 :(得分:1)
喷雾HTTP客户端是否只返回scala Future
?如果是这样,那么你应该能够做到:
import scala.concurrent._
import duration._
val fut = ... //call spray here
val result = Await.result(fut, 5 seconds)
这将阻止未来长达5秒钟等待它完成。如果超时,将抛出异常而不是获得结果。