模拟登录

以下两个例子都是模拟登录教务网站 思想都是相通的,借助 Fillder 工具分析 , 登录所需参数逐步进行登录
/**
     * 登录教务网站
     * 
     * @param params
     *            (账号 ,密码)
     * @return JsoupResult(cookie)
     * @throws Exception
     */
    private JsoupResponse login(Hashtable<String, Object> params)
            throws Exception {
        debug("> > > enter into login");
        String userName = "";
        String passWord = "";
        if (params.containsKey("password")) {
            Password password = (Password) params.get("password");
            passWord = PasswordUtils.decrypt(password.getPasswordContent());
            userName = password.getUserName();
        } else {
            userName = (String) params.get("userName");
            passWord = (String) params.get("passWord");
        }
        Connection.Response resLogin = Jsoup
                // 进入页面 ,获取参数
                .connect(
                        "http://211.70.128.166/cas/login?service=http%3A%2F%2F211.70.128.166%2Fc%2Fportal%2Flogin")
                .header("Host", "211.70.128.166")
                .header("User-Agent",
                        "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.154 Safari/537.36")
                .timeout(10000).execute();

        Map<String, String> param = new HashMap<String, String>();
        Document doc = resLogin.parse();
        String lt = doc.select("tbody").select("input").eq(5).attr("value");
        param.put("lt", lt);
        param.put("_eventId", "submit");
        param.put("logintype", "cas");
        param.put("username", userName);
        param.put("password", passWord);
        Connection.Response res = Jsoup
                // 利用参数进入主页面
                .connect(
                        "http://211.70.128.166/cas/login?service=http%3A%2F%2F211.70.128.166%2Fc%2Fportal%2Flogin")
                .header("Referer",
                        "http://211.70.128.166/cas/login?service=http%3A%2F%2F211.70.128.166%2Fc%2Fportal%2Flogin")
                .header("Host", " 211.70.128.166")
                .header("Accept-Language", "zh-CN,zh;q=0.8")
                .header("User-Agent",
                        "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36")
                .data(param).cookies(resLogin.cookies()).timeout(10000)
                .method(Method.POST).execute();

        if (res.parse().html().contains("注销")) {
            debug("登录成功!!!");
            return JsoupResponse.getInstance().cookieMap(res.cookies());
        } else {
            throw new JsoupException(JsoupError.LoginFalse, "登录失败!请检查登录账号密码!");
        }

    }

例2:

/**
     * 登录教务网站
     * 
     * @param params
     *            (账号 ,密码)
     * @return JsoupResult(cookie)
     * @throws Exception
     */
    private JsoupResponse login(Hashtable<String, Object> params)
            throws Exception {
        debug("> > > enter into login");
        String userName = "";
        String passWord = "";
        if (params.containsKey("password")) {
            Password password = (Password) params.get("password");
            passWord = PasswordUtils.decrypt(password.getPasswordContent());
            userName = password.getUserName();
        } else {
            userName = (String) params.get("userName");
            passWord = (String) params.get("passWord");
        }
        String sessionId = "";
        if (params.containsKey("sessionId")) {
            sessionId = (String) params.get("sessionId");
        }
        Connection.Response response = Jsoup
                .connect("http://jw.coscoqmc.com.cn/_data/index_login.aspx")
                .header("Host", "jw.coscoqmc.com.cn")
                .header("Referer", "http://jw.coscoqmc.com.cn/index.aspx")
                .header("User-Agent",
                        "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.154 Safari/537.36")
                .cookie("ASP.NET_SessionId", sessionId).timeout(100000)
                .execute();
        String __VIEWSTATE = response.parse().select("input[name=__VIEWSTATE]")
                .get(0).val();
        String code = (String) params.get("code");
        Map<String, String> param = new HashMap<String, String>();
        param.put("__VIEWSTATE", __VIEWSTATE);
        param.put(
                "pcInfo",
                "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.154 Safari/537.36 LBBROWSERundefined5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.154 Safari/537.36 LBBROWSER SN:NULL");
        param.put("typeName", "学生");
        param.put("Sel_Type", "STU");
        param.put("txt_asmcdefsddsd", userName);
        param.put("txt_pewerwedsdfsdff", passWord);
        param.put("txt_sdertfgsadscxcadsads", code);
        param.put("sbtState", "");
        param.put("dsdsdsdsdxcxdfgfg", processUserNamePwd(userName, passWord));
        param.put("fgfggfdgtyuuyyuuckjg", processCode(code));
        Connection.Response res = Jsoup
                .connect("http://jw.coscoqmc.com.cn/_data/index_login.aspx")
                .header("Origin", "http://jw.coscoqmc.com.cn")
                .header("Referer",
                        "http://jw.coscoqmc.com.cn/_data/index_login.aspx")
                .header("Host", "jw.coscoqmc.com.cn")
                .header("Accept-Language", "zh-CN,zh;q=0.8")
                .header("User-Agent",
                        "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.154 Safari/537.36 LBBROWSER")
                .data(param).cookie("ASP.NET_SessionId", sessionId)
                .timeout(100000).method(Method.POST).execute();
        Connection.Response resLogin = Jsoup
                .connect("http://jw.coscoqmc.com.cn/SYS/Main_tools.aspx")
                .header("Host", "jw.coscoqmc.com.cn")
                .header("User-Agent",
                        "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.154 Safari/537.36")
                .header("Referer", "http://jw.coscoqmc.com.cn/MAINFRM.aspx")
                .cookie("ASP.NET_SessionId", sessionId).timeout(10000)
                .execute();
        if (resLogin.parse().html().contains("注销")) {
            debug("登录成功!!!");
            return JsoupResponse.getInstance().cookieMap(resLogin.cookies());
        } else {
            throw new JsoupException(JsoupError.LoginFalse, "登录失败!请检查登录账号密码!");
        }

    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值