每个人。我使用网络抓取工具查询用户在某些网站中的不可或缺的部分。但是我遇到了麻烦。首先,让我们关注这张图片: enter image description here
正如你所看到的,第一个请求,它的响应代码是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,在这张图片中,页面已被重定向到第三页!!所以,我希望你们中的一些人可以帮助我找出原因是什么。