Reputation: 1508
Every time I perform a OKHttp Post request on this site, the response code is 302 and the response body is:
<html>
<head>
<title>Object moved</title>
</head>
<body>
<h2>Object moved to <a href="/GradebookSummary.aspx">here</a>.
</h2>
</body>
</html>
Here is my code:
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();
My question is: How could I handle the response to be able to go to the new location?
Upvotes: 7
Views: 8994
Reputation: 1508
All I needed to do was add a persistent cookie handler, which I found here.
Upvotes: 1
Reputation: 1620
OKhttp follows redirects by default but since you've explicitly disabled it in this case you'll need to check the Location
header of the response to find the redirected url.
EDIT: You can get the new location via
String location = response.header('Location');
Upvotes: 7