tags:

views:

188

answers:

1

Hello. I'd like to save HtmlUnit cookies to a file and on next run load them from that one. How can I do that? Thanks.

+5  A: 
public static void main(String[] args) throws Exception {
        LogFactory.getFactory().setAttribute("org.apache.commons.logging.Log", "org.apache.commons.logging.impl.NoOpLog");

        File file = new File("cookie.file");
        ObjectInputStream in = new ObjectInputStream(new FileInputStream(file));
        Set<Cookie> cookies = (Set<Cookie>) in.readObject();
        in.close();

        WebClient wc = new WebClient();

        Iterator<Cookie> i = cookies.iterator();
        while (i.hasNext()) {
            wc.getCookieManager().addCookie(i.next());
        }

        HtmlPage p = wc.getPage("http://google.com");
        p = wc.getPage("http://google.com");

        ObjectOutput out = new ObjectOutputStream(new FileOutputStream("cookie.file"));
        out.writeObject(wc.getCookieManager().getCookies());
        out.close();
    }
roddik