2013-06-06 3 views
0

Я понимаю, что это может противоречить назначению Spray, но мне было интересно, если при использовании объекта HttpClient я могу сделать блок запроса до тех пор, пока результат не будет возвращен, а не по умолчанию поведение неблокирования и последующее выдача обратного вызова.Spray HttpClient Синхронный/блокирующий вызов

Я коротко заглянул внутрь источника для HttpClient, думая, что это акк-актер, обернутый вокруг синхронного закрытого клиентского суперкласса http-клиента, но это, похоже, не так.

ответ

1

Не распыляет ли HTTP-клиент только скалу Future? Если да, то вы должны быть в состоянии просто сделать:

import scala.concurrent._ 
import duration._ 

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

Это будет блокировать на будущее в течение 5 секунд, ожидая, что будет завершена. Если время истечет, исключение будет выбрано вместо получения результата.

 Смежные вопросы

  • Нет связанных вопросов^_^