我要用程序登陆到一个网站(知道用户名和密码);然后把固定页面的数据下载下来,我该怎么办,除了用httpunit以外还有其他的办法吗?

解决方案 »

  1.   

    1.直接FTP到 网站的空间,把否个目录下的某个文件下载下来就行了
    2.URLCONNECTION和HTTP交互,得到数据生成文件
    3.SOCKET +URL,下载某些文件
      

  2.   

    如果你不是为了练习,你可以先登录,然后用SuperHTTP下载。它可以保持原有的存放顺序。
      

  3.   

    去看看那些网页Spider怎么实现的好了我想用工具是最方便的,自己实现可能有难度...
      

  4.   

    用HttpClient就可以了呀~public static void testClient(){
            HttpClient client = new HttpClient();
            PostMethod method = new PostMethod("你的url");
            Part[] parts = { new StringPart("logname","aaa"), new StringPart("logpwd","bbb") };
            method.setRequestEntity(new MultipartRequestEntity(parts, method.getParams()));
            try{
                int status = client.executeMethod(method);
                if (status == HttpStatus.SC_OK){
                    String resource = method.getResponseBodyAsString();
                    System.out.println(resource);
                }else{
                    System.out.println("读取网页失败Code=[" + status + "]!");
                }
            }catch(Exception e){
                e.printStackTrace();
            }
        }
    其中:
    Part[] parts = { new StringPart("logname","aaa"), new StringPart("logpwd","bbb") };
    是存放你的用户帐号和密码的,具体参数名你要从网页上找;如果网页上还有其他参数,也一同加进来,不然很可能登陆失败~
    注意:用commons-httpclient-3.0.1.jar的时候,另外4个也少不了commons-logging-adapters-1.1.jar,commons-logging-api-1.1.jar,commons-logging-1.1.jar,commons-codec-1.3.jar,apache官方网站都有下,用最新版就可以了。
      

  5.   

    谢谢提示,可是网站比较复杂,登陆后要输入 查询条件,里面有框架页什么的,不知道HttpClient是否可用,是不是 支持 javascript 脚本
      

  6.   

    如果网页的参数比较复杂的话,那你就要费功夫找出所需要的参数,javascript只是控制网页的,你只要找到它的最终目的和所用参数,跳过它就可以了,一般的网页用HttpClient都没什么问题的,但前提是你要找准最终的url和它的参数。