0

当我在浏览器中打开网页时,我可以成功访问该网页。但是当我厌倦了在线获取Java网页的源代码时,网页自动重定向到另一个页面,所以我只能在我的程序中获取新网页的源代码。有什么办法可以打破java中的这种重定向吗?

多谢。

以下是在我的程序中获取源代码的部分。

目标网页是一个在线社区网页(如Facebook),属于中国最大的互联网公司(百度)。

当你运行下面的程序时,你会发现控制台中贴出的网页源代码并不是你可以从浏览器中得到的代码。并且控制台中发布的源代码与您在以下网页中可以找到的几乎相同, http://www.baidu.com/search/ressafe.html?q=%E5%AE%AB%E5%B4 %8E%E9%AA%8F%E5%90%A7&url=http://tieba.baidu.com/f?kw=%B9%AC%C6%E9%BF%A5

这表明网页被重定向。

import java.net.*;
import java.io.*;
import java.util.*;

public class URLConnectTest {

    public static final String s = "%B9%AC%C6%E9%BF%A5";

    public static void main(String[] args) throws Exception {
        URL u = new URL("http://tieba.baidu.com/f?kw=" + s);
        URLConnection yc = u.openConnection();

        /* I've ever tried to reset the UA, which doesn't work.
        yc.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.0; WOW64) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.16 Safari/534.24");
        */

        BufferedReader in = new BufferedReader(new InputStreamReader(yc.getInputStream()));
        String line;
        while ((line = in.readLine()) != null) {
            System.out.println(line);
        }
    }
}
4

1 回答 1

0

HTTPURLConnection自动遵循 HTTP 重定向,如果要禁用它,请调用HTTPURLConnection.setInstanceFollowRedirects(false).

于 2012-09-03T05:09:57.640 回答