HttpsURLConnection的。 setInstanceFollowRedirects(false)似乎无效

时间:2016-08-24 06:58:08

标签: java httpsurlconnection

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

0 个答案:

没有答案