如何在ktor-client中禁用重定向

时间:2019-05-26 00:02:26

标签: kotlin httpclient ktor

我正在使用ktor-client(ApacheHttpClient引擎)创建简单的HTTP请求

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)
        })

在日志中,我可以看到我想从中获取和获取cookie的302重定向的正确响应。但是,相反,我看到客户端继续前进并发出了更多请求,最终失败了:

  

io.ktor.client.features.SendCountExceedException:超过最大发送计数20

如何在ktor-client中完全禁用基于302的重定向?

1 个答案:

答案 0 :(得分:1)

ktor-client follows redirects by default,为防止无限重定向,请使用:

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