使用jsoup完成模拟登陆

来源:互联网 发布:厦门网络文化节 编辑:程序博客网 时间:2024/05/22 01:56

大概的思路如下:

1,获取请求的参数,和对应的请求url

2,将参数封装到一个Map<String,String> 中

3,使用对应的参数发post请求,获取response

4,判断时候模拟登陆成功


    /**
     * 读取配置文件中的登录参数
     *
     * @param loginFileName配置文件的名称
     * @return 封装了登录信息的一个map
     */
    public static Map<String, String> getLoginData(String loginFileName) {
        // 读取配置文件中的参数信息
        Properties properties = new Properties();
        try {
            properties.load(new InputStreamReader(CookieTools.class.getResourceAsStream("/" + loginFileName)));
            Map<String, String> loginPramas = new HashMap<String, String>((Map) properties);
            return loginPramas;
        } catch (IOException e) {
            e.printStackTrace();
            Logger.getLogger(CookieTools.class).error("读取配置文件 " + loginFileName + " 失败!");
        }
        return null;
    }


/**
     * 模拟登录
     *
     * @param loginFileName登录参数所在的配置文件名称
     * @param loginUrl登陆请求的url
     * @return 登陆后的cookies
     */
    public static Map<String, String> login(String loginFileName, String loginUrl) {
        try {
            Connection conns = Jsoup.connect(loginUrl);
            Response response = conns.timeout(5000).ignoreContentType(true).method(Method.POST)
                    .data(getLoginData(loginFileName)).execute();
            return response.cookies();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }

0 0
原创粉丝点击