2011-02-28 3 views
3

J'essaie de me connecter à un site Web en utilisant la bibliothèque HTMLUnit. Un problème est que mon client HTMLUnit n'accepte pas un cookie de ce site avec le message suivant:HTMLUnit rejette un cookie

AVERTISSEMENT: Cookie rejeté: « [Version: 0] [nom: remixchk] [valeur: 5] [domaine : .vkontakte.ru] [chemin: /] [expiration: Mar Feb 21 08:53:46 MSK 2012] ". Attribut de domaine illicite "vkontakte.ru". Domaine d'origine: « login.vk.com »

En effet, le formulaire de connexion est soumise à l'adresse différente de l'adresse du site.

J'ai besoin de changer une politique de cookie dans mon client. Je sais, que je devrais réécrire une méthode getCookies en classe CookieManager. Je l'ai fait dans une sous-classe de CookieManager puis changé la CookieManager de mon client ainsi:

webClient.setCookieManager(new mySubclassedCookieManager()); 

Mais cela ne change rien. De plus, lors du rejet du cookie, la méthode getCookies ne s'exécute jamais.

Où est-ce que je me suis trompé? Comment puis-je forcer HTMLUnit à accepter ce cookie?

Répondre

1

Vous ne devriez pas changer le client: vous devriez changer la conception de votre application. HTMLUnit fait ce que n'importe quel navigateur ferait dans ce cas: rejeter le cookie. Un site Web ne peut pas définir un cookie pour un autre domaine, pour des raisons de sécurité (et de confidentialité).

+2

JB Nizet, en fait, je me connecte à ce site en utilisant n'importe quel navigateur. Donc le problème est à l'intérieur de HTMLUnit. – KutaBeach