mechanize is a stateful HTTP/HTML client library written in Java to be available on the JVM. It utilizes Apache HttpClient for HTTP handling and JSoup for HTML parsing. Because mechanize is stateful, it will by default support cookies and hidden form parameters (like Rails CSRF protection). This enables client code to follow links and behave like a RESTful hypermedia client more easily.