Заголовок местоположения теряется, если max-redirects › 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, он будет правильным. Тем не менее, я бы не хотел, чтобы он сломался, если кто-то в будущем решит, что ему нужно больше erdirects в том же приложении. Я что-то пропустил в конфигурации спрея?


person Tim    schedule 31.12.2014    source источник


Ответы (1)


Видимо, я неправильно понял заголовок Location. Он поставляется с ответом перенаправления, поэтому, когда я устанавливаю max-redirect > 0 и у меня есть перенаправление, я получаю последний ответ, который уже перенаправлен и не имеет заголовка Location. Спрей HttpResponse не связан с немедленным запросом, который его сгенерировал, поэтому невозможно выяснить, какой URL-адрес пришел с этого ответа. Мое решение - сделать ручное перенаправление.

person Tim    schedule 06.01.2015