HttpsURLConnection. setInstanceFollowRedirects(false) кажется неэффективным
Все. Я использую веб-сканер для запроса интеграла пользователя на некоторых веб-сайтах. Но я попадаю в неприятности. Прежде всего, давайте сосредоточимся на этой картинке: введите описание изображения здесь
Как видите, первый запрос, это код ответа 302, то есть эта страница будет перенаправлена на другую страницу. Теперь посмотрите на мой код, метод входа в систему:
private JuneyResults login(String url, String param) {
JuneyResults results = new JuneyResults();
HttpsURLConnection connection = null;
int contentLength = param.getBytes().length;
try {
URL requested = new URL(url);
connection = (HttpsURLConnection) requested.openConnection();
connection.setInstanceFollowRedirects(false);
connection.setDoOutput(true);
connection.setRequestMethod("POST");
connection.setRequestProperty("User-Agent", UA);
connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
connection.setRequestProperty("Cookie", map2String(mCookies));
connection.setRequestProperty("Content-Length",String.valueOf(contentLength));
DataOutputStream os = new DataOutputStream(connection.getOutputStream());
os.write(param.getBytes());
os.flush();
os.close();
switch (connection.getResponseCode()) {
case HttpURLConnection.HTTP_MOVED_PERM:
case HttpURLConnection.HTTP_MOVED_TEMP:
updateJuneyAirCookie(connection);
break;
default:
break;
}
} catch (Exception e) {
results.setException(e.getMessage());
} finally {
if (connection != null)
connection.disconnect();
}
return results;
}
Хорошо, я установил свойства заголовка запроса, которые нам точно нужны. И передал false методу setInstanceFollowRedirects. Ожидаемый код ответа - 302, так же, как мы видим на рисунке, но он по-прежнему возвращает 200. Я не думаю, что есть некоторая логическая ошибка в моем коде, однако, факты являются фактами, это действительно возвращает 200, на этой картинке страница была перенаправлена на третью страницу!! Итак, я надеюсь, что некоторые из вас могут помочь мне выяснить, в чем причины являются.