用Apache HttpClient就可以了

解决方案 »

  1.   

    可以搞定,楼主给分!
    import HTTPClient.*;
    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.io.InputStream;
    import java.io.OutputStream;public class Login {
      private HTTPConnection connection;
      private static InputStream istr = null;
      private static OutputStream ostr = null;
      private static NVPair form_data[];
      private static HTTPConnection httpCon;
      private static HTTPResponse rsp;
      private static String host;
      private static Login instance;
      private Login(){
        getConnection("www.5rg.com",80);
      }
      public static Login getInstance(){
        if(instance==null){
          instance = new Login();
        }
        return instance;
      }  public static String request(HTTPConnection connection,String pathName,String method,NVPair form_data[]) {
        try{
           httpCon = connection;
           
           if(method.toLowerCase().equals("get")){
             if(form_data!=null){
               rsp = httpCon.Get(pathName, form_data);
             }else{
               System.out.println("pathName=="+pathName);
               rsp = httpCon.Get(pathName);
             }
           } else{
             if(form_data!=null)
               rsp = httpCon.Post(pathName, form_data);
             else
               rsp = httpCon.Post(pathName);
           }
          istr = rsp.getInputStream();
          BufferedReader reader = new BufferedReader(new InputStreamReader(istr));
          String line;
          StringBuffer result = new StringBuffer();
          while ((line = reader.readLine()) != null) {
            result.append(line + System.getProperty("line.separator"));
          }
          System.out.println("result=="+result.toString());
          return result.toString();
        } catch(Exception e){
          System.out.println("发生异常:");
          e.printStackTrace();
        }
     return "";
      }  public void releaseConnection(){//释放连接
        if (connection != null) {
          connection.stop();
          connection = null;
        }
      }
        public HTTPClient.HTTPConnection getConnection(String hostName,int port){//取得连接
           if(connection==null){
             try{
               connection = new HTTPClient.HTTPConnection(hostName,port);
               HTTPClient.CookieModule.setCookiePolicyHandler(null);
               connection.addDefaultModule(Class.forName("HTTPClient.CookieModule"), 1);
               connection.addModule(Class.forName("HTTPClient.RedirectionModule"),2);
             }catch(Exception e){
               e.printStackTrace();
             }
           }
           return connection;
        }  public void Login(){
        NVPair[] form_data = new NVPair[2];
        //对应登陆需要的表单字段填写
        form_data[0] = new NVPair("user","blueyang");
        form_data[1] = new NVPair("pwd","12297130");
        //提交到指定登陆页面
        Login.getInstance().request(connection,"/cargo/user.asp?type=login","post",form_data);
        String result=Login.request(connection,"/member/cargo/cargo.asp?id=7234495","get",null);
        System.out.println("登陆后进入index1.asp的内容=="+result);
      }  public static void main(String[] args) {
          Login al = Login.getInstance();
         try{
           al.Login();
           
           al.releaseConnection();
        }catch(Exception e){
          e.printStackTrace();
        }
        }
    }