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 ヘッダーが表示されません。

構成を Location ヘッダーに変更すると、spray.can.host-connector.max-redirects = 1そこにあり、正しいです。ただし、将来誰かが同じアプリでより多くの erdirect が必要であると判断した場合に壊れないようにしたいと思います。スプレーの設定について見逃していることはありますか?

4

1 に答える 1

0

どうやら Location ヘッダーを誤解していたようです。リダイレクト応答が付属しているため、max-redirect > 0 を設定してリダイレクトすると、既にリダイレクトされた最新の応答が取得され、Location ヘッダーがありません。スプレーの HttpResponse は、それを生成した即時のリクエストに結び付けられていないため、このレスポンスの元の URL を特定する方法はありません。私の解決策は、手動でリダイレクトすることです。

于 2015-01-06T00:07:08.550 に答える