玩! 2 WS库:在流式HTTP响应中检测和处理已关闭的连接

时间:2013-08-24 04:33:16

标签: scala playframework iterate

在播放WS库中,我正在使用此调用来处理流式http响应:

 def get[A](consumer: ResponseHeaders => Iteratee[Array[Byte], A]):
     Future[Iteratee[Array[Byte], A]]

我传递的内容如下:_ => (Iteratee.foreach(chunk => println(chunk)))

一切正常,但在某些时候连接似乎已经关闭,我不知道如何处理这个问题。当Iteratee完成时,我尝试添加.mapDone来打印出一些东西,但它永远不会发生。

在此get请求中,如何检测连接已关闭并处理该事件?

1 个答案:

答案 0 :(得分:0)

似乎不再是Play 2.2.3中的问题了。当流关闭时,应使用map调用传递给Unit的函数,如下所示:

val connection = WS.url("http://example.com")
  .get(_ => iteratee).flatMap(_.run) map { _ => println("closed") }