Wie geben Sie eine Cookie-Richtlinie in htmlunit an, um alle Cookies zu akzeptieren?Cookie-Richtlinie in htmlunit
Antwort
neu erstellen Sie einfach die ganze Cookie Klasse: Hier Quelle der Klasse ist: http://jarvana.com/jarvana/view/net/sourceforge/htmlunit/htmlunit/2.8/htmlunit-2.8-sources.jar!/com/gargoylesoftware/htmlunit/CookieManager.java?format=ok
nun diese Methode Lookup public synchronized Set<Cookie> getCookies(final URL url)
in die Sie dort finden Sie:
public static final String HTMLUNIT_COOKIE_POLICY = CookiePolicy.BROWSER_COMPATIBILITY; //default
final CookieSpec spec = registry_.getCookieSpec(HTMLUNIT_COOKIE_POLICY);
for (final org.apache.http.cookie.Cookie cookie : all) {
if (spec.match(cookie, cookieOrigin)) {
matches.add(cookie);
}
}
Fernbedienung, um die Spezifikationen Anpassung Erklärung if (spec.match(cookie, cookieOrigin))
Sie sollten Sie alle Cookies unabhängig von der Richtlinie akzeptieren. Und/oder Sie können das ACCEPT_ALL_COOKIES-Flag bearbeiten und die entsprechenden Spezifikationen erfüllen, wenn dies die in der Konfiguration angegebene Richtlinie ist.
Sie haben Recht. Ich sollte mehr schlafen) –
Einige Lösungen mit Änderungen am Quellcode.
Sie können einfach
cookieSpec.validate(cookie, cookieOrigin);
Linie vonorg.apache.http.client.protocol.ResponseProcessCookies
in HttpclientIn Htmlunit entfernen Sie Ihre eigene Strategie es statt
public static final String HTMLUNIT_COOKIE_POLICY = CookiePolicy.BROWSER_COMPATIBILITY; ... final CookieSpec spec = registry_.getCookieSpec(HTMLUNIT_COOKIE_POLICY);
Optional in
com.gargoylesoftware.htmlunit.CookieManager
erstellen und verwenden können, hängt es sollte von Konstruktor Parameter von CookieManager aber Autoren denken nicht so)/** * HtmlUnit's cookie policy is to be browser-compatible. Code which requires access to * HtmlUnit's cookie policy should use this constant, rather than making assumptions and using * one of the HttpClient {@link CookiePolicy} constants directly. */
Wenn Sie also Ihre eigene Cookie-Strategie implementieren oder Fälle behandeln möchten, in denen
CookiePolicy.BROWSER_COMPATIBILITY
nicht browserfähig ist, sollten Sie den Code ändern.
- 1. DomNode htmlunit
- 2. Prozess AJAX Anfrage in Htmlunit
- 3. HtmlUnit Eigenschaft undefinierter Skriptfehler
- 4. HtmlUnit und Fragment Identitäten
- 5. Groovy htmlunit getByXPath
- 6. Java: Wie htmlunit einrichten
- 7. Selen vs HtmlUnit?
- 8. HtmlUnit + Webclient.getPage wirft
- 9. HtmlUnit nicht getPage
- 10. HtmlUnit Verarbeitung Leerzeichen
- 11. Unmögliche Site für HtmlUnit?
- 12. Datei herunterladen mit HtmlUnit
- 13. .net Äquivalent von htmlunit?
- 14. HtmlUnit JavaScript-Fehler ignorieren?
- 15. Alternative zu HtmlUnit
- 16. Kann HTMLUnit Daten in Passwortfelder eingeben?
- 17. Importieren von HtmlUnit in Android-Projekt
- 18. kann HTMLUNIT in Eclipse nicht einrichten
- 19. Java HtmlUnit - kann nicht in WordPress einloggen
- 20. Wie umfassen Htmlunit in einem Kotlin Projekt
- 21. Wie die Cross-Domain in Htmlunit
- 22. HtmlUnit langsamer als GUI-Browser?
- 23. HtmlUnit Button klicken nicht senden
- 24. Htmlunit 2.9 jar JavaScript ausführen
- 25. Kann HtmlUnit JavaScript-Weiterleitungen behandeln?
- 26. Über HTMLUnit und laufendem Code
- 27. crawl dynamische Webseite mit htmlunit
- 28. Eine HtmlUnit Alternative für Android?
- 29. HtmlUnit Download-Link von DIV
- 30. HTMLUnit funktioniert nicht mit AngularJS
@Mat Banik, ich Post einige Antwort, aber es ist nicht wirklich gut. –
Ich habe festgestellt, dass, anstatt die Cookie-Richtlinie zu optimieren, es besser ist zu sehen, warum die Cookies abgelehnt werden - und zu beheben. – mauhiz