Ce programme donne des exemples de gestion des redirections d'url ainsi que de transmission de cookies lors de ces redirections.
Le programme fait 5 requêtes pour la ressource "http://localhost/Cookie1.php", et suit une redirection vers la ressource "http://localhost/Cookie2.php".
Requête 1 : redirection automatique avec transmission automatique du cookie correct
Requête 2 : redirection manuelle avec transmission automatique d'un cookie correct
Requête 3 : redirection manuelle avec transmission manuelle d'un cookie erroné
Requête 4 : redirection manuelle avec transmission manuelle d'un cookie correct
Requête 5 : redirection manuelle avec suppression du cookie (provoque une erreur 404)
Pour faire fonctionner ce programme, il faut (avec eclipse) :
- installer la librairie httpClient :
- télécharger les fichier les fichiers binaires (et sources) des codecs apache par défaut :
- http://jakarta.apache.org/commons/codec/
- télécharger les fichier les fichiers binaires (et sources) des gestionnaires de journalisation apache par défaut :
- http://jakarta.apache.org/commons/logging/
- télécharger les fichier les fichiers binaires (et sources) du client http apache :
- http://jakarta.apache.org/commons/httpclient/
- créer un répertoire java et 3 sous répertoires correspondants aux 3 sous projets apache
- commons-codec-1.3,
- commons-logging-1.1,
- commons-httpclient-3.1-rc1
- décompresser les fichiers jar, et éventuellement la documentation, dans leur répertoire respectif
- si les fichiers sources ont été téléchargés alors décompresser les sources dans un sous répertoire nommé src de chaque sous projet
- dans l'explorateur de projet d'eclipse, créer un nouveau projet nommé redirectCookie (vérifier la compatibilité jre 5.0 minimum) -> Suivant
- dans l'onglet Librairies, créer et associer au projet 3 variables pointant les fichiers jar des 3 sous projets :
(Onglet bibliothèque->Ajouter une variable->Configurer les variables->Nouveau)
- COMMONS_CODEC vers java/commons-codec-1.3/commons-codec-1.3.jar
- COMMONS_LOGGING vers java/commons-logging-1.1/commons-logging-1.1.jar
- HTTPCLIENT vers java/commons-httpclient-3.1-rc1/commons-httpclient -3.1-rc1.jar
- si la documentation a été décompressée,
faire un attachement de la documentation à chaque variable du projet : COMMONS_CODEC, COMMONS_LOGGING et HTTPCLIENT
(Menu contextuel de la variable->Propriétés->Emplacement javadoc->Parcourir puis choisir le répertoire contenant la documentation de l'api)
- si les fichiers sources ont été téléchargés, créer 3 variables indiquant les répertoires où les sources ont été décompressés
- COMMONS_CODEC_SRC vers java/commons-codec-1.3/src
- COMMONS_LOGGING_SRC vers java/commons-logging-1.1/src
- HTTPCLIENT_SRC vers java/commons-httpclient-3.1-rc1/src
faire un attachement de fichiers sources à chaque variable du projet : COMMONS_CODEC, COMMONS_LOGGING et HTTPCLIENT
(Menu contextuel de la variable->Propriétés->Connexion source java->Variable puis choisir la variable associée aux sources)
- importer le fichier redirectCookie.jar contenu dans le fichier redirectCookie.zip dans le projet nouvellement créé
- installer et démarrer un serveur local supportant le php (easyphp : http://www.easyphp.org/, par exemple).
- copier les deux fichiers php (Cookie1.php et Cookie2.php) à la racine de ce serveur.
- compiler et lancer le programme principal
Le programme est composé de 3 classes :
- La classe HttpConstants contient des types utiles et des constantes pour le fonctionnement par défaut.
- La classe GetPostClient gére une communication multi requêtes par des méthodes GET et POST associées au client Http.
Elle permet de construire une gamme de clients http aux fonctionnalités plus spécifiques.
Elle permet de construire des url précises à l'aide de composants par défaut
Elle permet de localiser les erreurs Http courantes lors des requêtes sans empêcher leur fonctionnement.
- La classe CookieClient est un client de type GetPostClient orienté sur la gestion de communication avec cookies.