在Play WS库中,我正在使用此调用来处理流HTTP响应:
def get[A](consumer: ResponseHeaders => Iteratee[Array[Byte], A]):
Future[Iteratee[Array[Byte], A]]
我将其传递为:
_ => (Iteratee.foreach(chunk => println(chunk)))
一切正常,但有时连接似乎已关闭,我不知道该如何处理。我尝试添加
.mapDone
来在Iteratee完成后打印出一些内容,但从未发生。收到此请求后,如何检测到连接已关闭并处理该事件?
最佳答案
在Play 2.2.3中似乎不再是问题。流关闭时,应使用map
调用传递给Unit
的函数,如下定义:
val connection = WS.url("http://example.com")
.get(_ => iteratee).flatMap(_.run) map { _ => println("closed") }