scala - 从 Play WS 获取 ahcResponse

标签 scala playframework-2.3 asynchttpclient

我有这个:

class RichResponse(future: Future[WSResponse]) {

  def failIfNot(statuses: Int*)(implicit executor: ExecutionContext) = {
    future.map { response =>
      if(statuses.contains(response.status)) {
        response
      } else {
        throw new RuntimeException("Bad HTTP response for %s: %s".format(
          response.ahcResponse.getUri, response.status))
      }
    }
  }

}

object Implicits {

  implicit def responseToRichResponse(future: Future[WSResponse]) = new RichResponse(future)

}

用法是这样的:

WS.url("http://stackoverflow.com/questions/ask").failIfNot(OK)

但是从 2.1 升级到 2.3 后,achResponse 不再存在。我如何才能获得底层(和更完整的)响应对象?

最佳答案

我开始阅读源代码,似乎

response.underlying[NingWSResponse].ahcResponse

将是执行此操作的新方法。

看起来不是很安全....

关于scala - 从 Play WS 获取 ahcResponse,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25177143/

相关文章:

javascript - Play Framework 使用复选框提交 bool 值?

scala - Play 在单独的包中找不到自定义 QueryString 绑定(bind)器

java - 为什么 play.libs.Json.toJson 返回一个空对象?

java - 非阻塞 IO 和 HystrixObservableCommand

java.io.IOException 连接由异步 http 客户端中的对等方重置

android - 无法使用 loopj AsyncHttpClient 和授权 header 进行 POST

scala - 如何将 Java TreeMap 转换为 Scala SortedMap?

scala - map 合并功能的改进

html - Scala HTML 解析器对象的使用

scala - 为什么 maxBy 只返回单个项目?