在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") }

09-25 17:23