Как отключить перенаправления в ктор-клиенте - PullRequest
0 голосов
/ 26 мая 2019

Я создаю простой HTTP-запрос с ktor-клиентом (механизм ApacheHttpClient)

val client = HttpClient(Apache) {
    engine {
        followRedirects = false
        this@HttpClient.expectSuccess = false
    }
}

и использую его для отправки формы

client.submitForm<HttpResponse>(
        url = "https://foo.com/login",
        formParameters = Parameters.build {
            append("_username", username)
            append("_password", password)
        })

В логах я вижу правильныйответ с 302-перенаправлением, которое я хочу получить и получить печенье от него.Но вместо этого я вижу, что клиент движется дальше и делает еще несколько запросов и, наконец, завершается с ошибкой:

io.ktor.client.features.SendCountExceedException: максимальное число отправленных сообщений 20 превышено

Как я могу полностью отключить перенаправления на основе 302 в ktor-client?

1 Ответ

1 голос
/ 28 мая 2019

клиент-клиент по умолчанию выполняет перенаправления , чтобы предотвратить использование бесконечных перенаправлений:

val client = HttpClient(HttpClientEngine) {
    followRedirects = false
}
...