注意,一般提交登陆之后页面会自动跳转,那是浏览器自动实现的,如果你用java 比如URL 类来读的话,你得先分离出那个 页面的地址.跳转方式多多,也没有什么一定的方法,甚至无法判断如何跳转.所以,最好能分析 HTML.
可以用 Htmlparser 来分析页面内容,以确定到底这个页面将要跳转到哪里,或者不跳转.不少跳转是用 JavaScript 写的,浏览器会自动执行JavaScript,但是java 不会,不过我也不知道这个问题怎么解决,总不至于还实现一个JavaScript 解释器吧,不然,干脆接着实现一个浏览器算了.

解决方案 »

  1.   

    可能我交待的不清楚,我要访问的页面必须在登录页面登录过才可以进入这个网页。否则会自动跳转至登录页面。java程序要实现的功能是输入这个要访问页面的网址,就能获取html源码。请问这样的话post应该如何模拟?
      

  2.   

    我也有同样的问题……但是也没办法,下面是模拟post的方法,
    如果解决了共享一下方法吧,我也在找这方面的资料
        try {
            // Construct data
            String data = URLEncoder.encode("key1", "UTF-8") + "=" + URLEncoder.encode("value1", "UTF-8");
            data += "&" + URLEncoder.encode("key2", "UTF-8") + "=" + URLEncoder.encode("value2", "UTF-8");
        
            // Send data
            URL url = new URL("http://hostname:80/cgi");
            URLConnection conn = url.openConnection();
            conn.setDoOutput(true);
            OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
            wr.write(data);
            wr.flush();
        
            // Get the response
            BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
            String line;
            while ((line = rd.readLine()) != null) {
                // Process line...
            }
            wr.close();
            rd.close();
        } catch (Exception e) {
        }