Me gustaría guardar las cookies de HtmlUnit en un archivo y en la siguiente ejecución cargarlas desde esa. ¿Cómo puedo hacer eso? Gracias.¿Cómo guardar las cookies de HtmlUnit en un archivo?
11
A
Respuesta
22
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");
ObjectOutput out = new ObjectOutputStream(new FileOutputStream("cookie.file"));
out.writeObject(wc.getCookieManager().getCookies());
out.close();
}
3
El código anterior funciona sólo con HtmlUnit (Im no criticar ni nada) solamente es decir, las exportaciones en un formato que puede ser leído por HtmlUnit Agin.
Aquí está una más genérica uno: (Esto funciona con curl)
CookieManager CM = WC.getCookieManager(); //WC = Your WebClient's name
Set<Cookie> set = CM.getCookies();
for(Cookie tempck : set) {
System.out.println("Set-Cookie: " + tempck.getName()+"="+tempck.getValue() + "; " + "path=" + tempck.getPath() + ";");
}
Ahora, Prefijo para salir de esos println (s) en el bucle. escríbelas en un archivo de texto.
obras con rizo:
curl -b "path to the text file" "website you want to visit using the cookie"
-b se puede cambiar con -c también .. comprobar documentos enrollamiento ...
Cuestiones relacionadas
- 1. Guardar imagen de url con HTMLUnit
- 2. ¿Cómo funcionan las cookies?
- 3. Elisp: cómo guardar datos en un archivo?
- 4. ¿Guardar un NSView en un archivo png?
- 5. ¿Cómo usar HtmlUnit en Java?
- 6. HtmlUnit + Selenium en producción
- 7. Guardar un archivo temporal
- 8. Guardar un TObject en un archivo
- 9. Java: cómo configurar htmlunit
- 10. ¿Cómo configurar HtmlUnit en un proyecto de Eclipse?
- 11. ¿Cómo usar las cookies en un middleware Rack?
- 12. ¿Cómo paso las cookies en un redireccionamiento de CURL?
- 13. Cómo leer las cookies locales
- 14. Extensión de Chrome: cómo guardar un archivo en el disco
- 15. Cómo guardar un objeto en un archivo en Delphi
- 16. Cómo matar las cookies zombie
- 17. Guardar salida de un archivo php en un archivo html
- 18. Cómo guardar un archivo png con transparencia?
- 19. Cómo borro las cookies en urllib.request (python3)
- 20. cómo desarmar las cookies en PHP?
- 21. cómo eliminar las cookies en asp.net
- 22. ¿Cómo utilizar las cookies en Zend?
- 23. ¿Cómo verificar las cookies en umbraco?
- 24. ¿Cómo puedo mostrar las cookies en Codeigniter?
- 25. Cómo guardar un Objeto QPixmap en un archivo?
- 26. Delphi 2010: ¿Cómo guardar un registro completo en un archivo?
- 27. ¿Cómo puedo guardar un objeto en un archivo?
- 28. android cómo guardar un objeto en un archivo?
- 29. ¿Cómo guardar un archivo XML en un disco con python?
- 30. Guardar certificado X509 en un archivo
Me gustaría que más personas comentaron que tú. Sencillo. Contesta la pregunta. Brillante. Muchas gracias! – David
Con htmlunit 2.23 'wc.getCookieManager(). AddCookie (i.next());' no provocó que las cookies se enviaran en la siguiente solicitud (verificó el código de _com.gargoylesoftware.htmlunit.Webclient_ y _com.gargoylesoftware. htmlunit.WebRequest_, CookieManager no se usa allí). Solo pude usar [esta respuesta] (http://stackoverflow.com/a/36155793/2039709) para pasar Cookies con una nueva Solicitud (es decir, crear la WebRequest manualmente) – user2039709