1

我有以下设置:

    val req = HttpRequest(HttpMethods.GET, Uri("http://www.example.com/blah"))
    val response: Future[HttpResponse] = (IO(Http) ? req).mapTo[HttpResponse]
    response.map(
     resp => {
       resp.headers.foreach(h => println(h))
     }
    )

和以下配置:spray.can.host-connector.max-redirects = 2. 我知道这个 URL 会重定向,但是当我检查响应标头时,我没有看到 Location 标头告诉我它重定向到的位置。

如果我将配置更改为spray.can.host-connector.max-redirects = 1Location 标头就在那里并且正确。但是,如果将来有人决定在同一个应用程序中需要更多的 erdirect,我希望它不会中断。我会错过任何有关喷雾配置的信息吗?

4

1 回答 1

0

显然我误解了 Location 标题。它带有重定向响应,所以当我设置 max-redirect > 0 并且我有一个重定向时,我会得到已经重定向的最新响应并且它没有 Location 标头。Spray 的 HttpResponse 不与生成它的即时请求耦合,因此无法确定该响应来自哪个 URL。我的解决方案是手动重定向。

于 2015-01-06T00:07:08.550 回答