zoukankan      html  css  js  c++  java
  • 利用java模拟网站登录程序代码

    web登陆无非就是网页获取,cookie 的管理,post和get方式的模拟。

    1.网页内容获取 java.io.InputStream in;
    java.net.URL url = new java.net.URL(www.hacktea8.com/index.html);
    java.net.HttpURLConnection connection = (java.net.HttpURLConnection)
    url.openConnection();
    connection = (java.net.HttpURLConnection) url.openConnection();
    //模拟成IE
    connection.setRequestProperty(“User-Agent”,”Mozilla/4.0 (compatible; MSIE 6.0; Windows 2000)”);
    connection.connect();
    in = connection.getInputStream();
    java.io.BufferedReader breader =
    new BufferedReader(new InputStreamReader(in , “GBK”));
    String str=breader.readLine());
    while(st != null){
    System.out.println(str); str=breader.readLine());
    }
    2.cookie管理
    1.直接的方式
    取得cookie:
    HttpURLConnection huc= (HttpURLConnection) url.openConnection();
    InputStream is = huc.getInputStream();
    // 取得sessionID.
    String cookieVal = hc.getHeaderField(“Set-Cookie”);
    String sessionId;
    if(cookieVal != null)
    {
    sessionId = cookieVal.substring(0, cookieVal.indexOf(“;”));
    }
    发送设置cookie:
    HttpURLConnection huc= (HttpURLConnection) url.openConnection();
    if(sessionId != null)
    {
    huc.setRequestProperty(“Cookie”, sessionId);
    }
    InputStream is = huc.getInputStream();

    2.利用的jcookie包(http://jcookie.sourceforge.net/ )
    获取cookie:
    URL url = new URL(“http://www.hacktea8.com/”);
    HttpURLConnection huc = (HttpURLConnection) url.openConnection();
    huc.connect();
    InputStream is = huc.getInputStream();
    Client client = new Client();
    CookieJar cj = client.getCookies(huc);

    新的请求,利用上面获取的cookie:
    url = new URL(“http://www.hacktea8.com/”);
    huc = (HttpURLConnection) url.openConnection();
    client.setCookies(huc, cj);

    3.post方式的模拟
    URL url = new URL(“www.hacktea8.com”);
    HttpURLConnection huc = (HttpURLConnection) url.openConnection();
    //设置允许output
    huc.setDoOutput(true);
    //设置为post方式
    huc.setRequestMethod(“POST”);
    huc.setRequestProperty(“User-Agent”,”Mozilla/4.7 [en] (Win98; I)”);
    StringBuffer sb = new StringBuffer();
    sb.append(“userName=”+userNme);
    sb.append(“&password=”+password);

    //post信息
    OutputStream os = huc.getOutputStream();
    os.write(sb.toString().getBytes(“GBK”));
    os.close();

    BufferedReader br = new BufferedReader(new InputStreamReader(huc.getInputStream()))
    huc.connect();
    String line = br.readLine();
    while(line != null){
    System.out.printli(line);
    line = br.readLine();
    }
     

  • 相关阅读:
    【NET】File操作练习笔记
    【微信小程序】分包的使用和预下载
    【微信小程序】组件Component常用案例
    MVCC多版本并发控制
    数据存储引擎
    seata 分布式事务 -- seata-three工程完整代码
    seata 分布式事务 -- seata-two工程完整代码
    seata 分布式事务 -- seata-one 工程完整代码
    seata 分布式事务 -- 准备工作
    seata 分布式事务 -- TCC模式
  • 原文地址:https://www.cnblogs.com/zhongbin/p/3131668.html
Copyright © 2011-2022 走看看