0

これはSprayの目的に反する可能性があることを認識していますが、HttpClientオブジェクトを使用する場合、ブロックせずに後で発行するデフォルトの動作とは対照的に、結果が返されるまでリクエストをブロックできるかどうか疑問に思っていました.折り返し電話。

HttpClient のソースを簡単に調べて、同期プライベート http クライアント スーパークラスをラップする akka アクターだと思ったのですが、そうではないようでした。

4

1 に答える 1

1

スプレー HTTP クライアントは scala を返すだけではありませんFutureか? もしそうなら、あなたはただできるはずです:

import scala.concurrent._
import duration._

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

これにより、未来が完了するまで最大 5 秒間ブロックされます。タイムアウトした場合、結果を取得する代わりに例外がスローされます。

于 2013-06-06T19:40:52.707 に答える