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 处理程序,我发现它 。
每次我在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 处理程序,我发现它