OKHttp句柄302

OKHttp handle 302

每次我在this网站上执行OKHttpPost请求,响应代码为302,响应正文为:

<html>
    <head>
        <title>Object moved</title>
    </head>
    <body>
        <h2>Object moved to <a href="/GradebookSummary.aspx">here</a>.
       </h2>
    </body>
</html>

这是我的代码:

OkHttpClient client = new OkHttpClient().newBuilder()
                            .followRedirects(false)
                            .followSslRedirects(false)
                            .build();
                    MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");
                    RequestBody body = RequestBody.create(mediaType, "checkCookiesEnabled=true&checkMobileDevice=false&checkStandaloneMode=false&checkTabletDevice=false&portalAccountUsername=username&portalAccountPassword=password");
                    Request request = new Request.Builder()
                            .url("https://hac.chicousd.org/LoginParent.aspx?page=GradebookSummary.aspx")
                            .post(body)
                            .addHeader("content-type", "application/x-www-form-urlencoded")
                            .addHeader("cache-control", "no-cache")
                            .build();

                    Response response = client.newCall(request).execute();

我的问题是:如何处理响应才能前往新位置?

OKhttp 默认遵循重定向,但由于您在这种情况下已明确禁用它,因此您需要检查响应的 Location header 以找到重定向的 url .

编辑:您可以通过

获取新位置
String location = response.header('Location');

我需要做的就是添加一个持久性 cookie 处理程序,我发现它