[java] HTTPClient cookie popup blijft verschijnen

Pagina: 1
Acties:

  • Johnny
  • Registratie: December 2001
  • Laatst online: 22-05 10:01

Johnny

ondergewaardeerde internetguru

Topicstarter
Om verbindingen te openen met externe websites gebruik ik HTTPClient, dit omdat het enkele belangrijke extra's heeft tegenover URLConnection dat standaard in Java zit.

HTTPClient ondersteunt ook cookies. Zodra een verbinding een cookie ontvangt verschijnt er een popup waar je kunt kiezen of je hem wilt accepteren. Omdat ik een Servlet maak is die popup bij de client niet te zien, dus moet die popup niet verschijnen.

Eerst heb ik geprobeerd om alle cookies te negeren, omdat ze in dit geval toch geen toegevoegde waarde hebben. Maar het werkt niet :(

Ik heb geprobeerd een Java System Property toe te voegen zoals hier beschreven staat. Maar dta werkt niet, hij complieert wel, maar die verdraaide popup verschijnt nog steeds.

Java:
1
2
3
4
5
    static {
    //zou alle cookies moeten stoppen
    System.getProperties().put("HTTPClient.cookies.hosts.reject", "| |");

    }


Ik heb geprobeerd een eigen CookiePolicyHandler te schrijven, maar door het ontbreken van een voorbeeld wilde dat niet echt lukken.


Uiteindelijk heb ik gebprobeerd om dan maar alle cookies te accepteren door een null mee te geven op deze manier:

Java:
1
CookieModule.setCookiePolicyHandler(null);


Maar je raad het al: die popup blijft verschijnen :(
Hoe krijg ik hem weg?

Aan de inhoud van de bovenstaande tekst kunnen geen rechten worden ontleend, tenzij dit expliciet in dit bericht is verwoord.


  • Macros
  • Registratie: Februari 2000
  • Laatst online: 30-04 09:28

Macros

I'm watching...

In plaats ze te ignoren, kan je ze ook standaard accepten:
If you wish to blindly accept and send all cookies then just disable the handler with CookieModule.setCookiePolicyHandler(null);.
Je kan ook zelf een CookiePolicyHandler schrijven. Implementeer deze interface en maak de methodes zo dat ze false returnen.

Die popup kunnen we natuurlijk niet ruiken hoe die komt. Dat zal je even zelf uit moeten zoeken met een debugger ofzo.

[ Voor 13% gewijzigd door Macros op 25-06-2004 22:02 ]

"Beauty is the ultimate defence against complexity." David Gelernter


  • Johnny
  • Registratie: December 2001
  • Laatst online: 22-05 10:01

Johnny

ondergewaardeerde internetguru

Topicstarter
Macros schreef op 25 juni 2004 @ 22:01:
In plaats ze te ignoren, kan je ze ook standaard accepten:
Dat zei ik zelf ook al :z
Je kan ook zelf een CookiePolicyHandler schrijven. Implementeer deze interface en maak de methodes zo dat ze false returnen.
Dat staat in the startpost, ik heb het nog een keer gebrobeerd maar de popup blijft komen:

Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import HTTPClient.CookiePolicyHandler;

public class CookieHandler implements CookiePolicyHandler {
    
    /** Creates a new instance of CookieHandler */
    public CookieHandler() {
    }
    
    public boolean acceptCookie(HTTPClient.Cookie cookie,
 HTTPClient.RoRequest req, HTTPClient.RoResponse resp) {
    return false;
    }
    
    public boolean sendCookie(HTTPClient.Cookie cookie, HTTPClient.RoRequest req) {
    return false;
    }
    
}
Die popup kunnen we natuurlijk niet ruiken hoe die komt. Dat zal je even zelf uit moeten zoeken met een debugger ofzo.
Die popup verschijnt wanneer je in het programma zelf niet defineert hoe cookies moeten worden afgehandeld.

Om de CookieHandler aan te roepen gebruik ik het volgende stukje code:
Java:
1
CookieModule.setCookiePolicyHandler(new CookieHandler());


Ik ga nog eens even proberen het op verschillende plaatsen neer te zetten...

Aan de inhoud van de bovenstaande tekst kunnen geen rechten worden ontleend, tenzij dit expliciet in dit bericht is verwoord.


  • Johnny
  • Registratie: December 2001
  • Laatst online: 22-05 10:01

Johnny

ondergewaardeerde internetguru

Topicstarter
Het lijkt er op dat ik het probleem is opgelost. Het web.xml bevatte een referentie naar de oude versie van het programma, zodra ik de nieuwe versie probeerde te runnen compileerde hij hem en startte vervolgens de oude versie |:(

Na een uurtje testen heb ik de cookie popup nog niet gezien, dus het lijkt er op dat het werkt.

Aan de inhoud van de bovenstaande tekst kunnen geen rechten worden ontleend, tenzij dit expliciet in dit bericht is verwoord.