【问题标题】:Location header is lost if max-redirects > 1如果 max-redirects > 1,位置标头会丢失
【发布时间】:2014-12-31 00:37:51
【问题描述】:

我有以下设置:

    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,我希望它不会中断。我会错过任何有关喷雾配置的信息吗?

【问题讨论】:

    标签: scala redirect spray spray-client


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-20
      • 2011-01-03
      • 1970-01-01
      • 1970-01-01
      • 2013-11-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多