Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : comment connaitre l'url de redirection d'une url [ Réseau & internet / Internet ] (Nassertom)

dimanche 3 juin 2007 à 04:10:44 | comment connaitre l'url de redirection d'une url

Nassertom

Membre Club
Bonjour,
j'ai un problème dans une application cliente je dois lire le contenu d'une page internet (la pas de problème) or le lien que j'appel renvoi sur une autre page (c'est là mon problème)
de ce fait mon 1er lien me retourne une erreur 404

exemple :
dans un navigateur cette page :
www.lien1.html
renvois à cette adresse :
www.lien2.html
 
j'ai capté cette adresse grace à un traceur html
 
ces 2 liens font le meme resultat dans le navigateur (propose d'ouvrir le document)
 
or dans java j'ai besoin de la 2eme adresse mais je ne connais que la 1ere.
 
sachant que la premiere adresse ne retourne rien (meme dans le traceur) elle ne fait que renvoyer sur le 2eme lien.
de ce fait  si je fais un :
            URL u = new URL(1erlien);
            URLConnection myConn = u.openConnection();
            BufferedReader br =
                new BufferedReader(new InputStreamReader( myConn.getInputStream()));
j'ai une erreur 404 (meme si je me crée une entête html)
 
je pense qu'avec un truk du genre myConn.Get...  je devrait trouver l'info donnant le forward ?

d'avance merci

NasserTom

dimanche 3 juin 2007 à 22:16:45 | Re : comment connaitre l'url de redirection d'une url

Nassertom

Membre Club
Bonjour,
Personne n'a une idée ?
Si le browser est capable de faire cette redirection pourquoi ne puis je pas trouver comment il fait ?
Savez vous comment puis je lire l'entête html ? je pense que l'information relative à la redirection y est peut être.

D'avance merci

NasserTom

lundi 4 juin 2007 à 11:51:24 | Re : comment connaitre l'url de redirection d'une url

AlexN

Réponse acceptée !
La classe HttpURLConnection dispose d'une méthode setFollowRedirect() qui permet de controler le comportement de la connection en cas de redirection.
Il faut le positionner à false pour empêcher la connection de suivre la redirection
Ensuite depuis la réponse du premier lien, il faut trouver le location="lien2" pour connaitre le lien de la redirection
Et ensuite faire la redirection manuellement si necessaire.

lundi 4 juin 2007 à 22:42:49 | Re : comment connaitre l'url de redirection d'une url

Nassertom

Membre Club
Bonjour,
Merci AlexN pour cette ilustration de class abstraite que je connaisais mais sans savoir ce quelle apportait de plus que la class urlconnexion.

effectivement avec
connexion.setFollowRedirects(false); je n'ai plus de message d'erreur (mais je ne suis pas encore la redirection)
avec la valeur à true j'ai exactement le meme message que precedament.

savez vous comment puis je intéroger le location (que je sais voir uniquement avec un soft de trace html) car visiblement la redirection n'est pas dans la page html (pas dans getInputStream).

Autre question au sujet de HttpURLConnection.
la création de trame html est deprecate : .setDefaultRequestProperty("User-agent", "Mozilla/4.0");
j'ai pensé qu'elle etait remplacé par ceci : .addRequestProperty("User-agent", "Mozilla/4.0");
mais cela me génère une erreur.

D'avance merci


NasserTom

mardi 5 juin 2007 à 17:09:40 | Re : comment connaitre l'url de redirection d'une url

AlexN

Réponse acceptée !
la redirection est généralement dans la page, mais elle peut se trouver à plusieurs endroits :

- dans une balise meta/refresh
<META HTTP-EQUIV="Refresh" CONTENT="5; URL=html-redirect.html">

- dans un script qui modifie la propriété location de la page courante : window.location.href = "html-redirect.html" (voir encore plus alambiqué)

- dans les règles du htaccess (avec apache comme serveur http) :

Redirect 301 /oldpage.html http://www.example.com/newpage.html

Mais dans ce dernier cas la redirection est prise en charge directement depuis le serveur et le client n'en a pas conscience.
Il n'existe malheureusement pas à ma connaissance de méthode qui retourne le lien de redirection (mais il faut fouiller la classe HttpUrlConnection). Il faut la trouver manuellement si tu veux reprendre le controle dessus.

Si tu veux avoir plus de controle sur la communication http, je te conseille vivement d'utiliser la librairie httpclient ( [ Lien ]) qui te permet entre autre de construire des entetes à ta sauce (notamment de modifier le user agent)

mardi 5 juin 2007 à 22:31:36 | Re : comment connaitre l'url de redirection d'une url

Nassertom

Membre Club
Merci à tous pour ces informations,

pour la modification du user-agent il n'y a pas de problème (mon erreur etait que je ne la mettais pas au bon moment)

pour les informations de l'entête je sais les visualiser comme ceci :

                  for(int i = 1; i < 10; i++) {
                  System.out.println(connexion.getHeaderFieldKey(i) + " = " +
                  connexion.getHeaderField(i));
                  }

effectivement la redirection n'est pas dans l'entête !!
je pense qu'il me faudrait gérer les cooki comme le fait le browser.
savais vous comment puis je enregiser des cooki
il me s'emble que pour les lires ont utilise la commande suivante :
 System.out.println(connexion.getHeaderField("Set-Cookie"));

en tt cas merci pour toute l'aide que vous m'avez deja apporté.

si quelqu'un a plus d'info sur les cookis ?

PS : je vais aller consulter ce lien

Cordialement



NasserTom

mercredi 6 juin 2007 à 00:25:58 | Re : comment connaitre l'url de redirection d'une url

Nassertom

Membre Club
Réponse acceptée !
bon j'ai trouvé grace à votre aides.

je laisse un exemple pour info :
//ajout d'information dans l'entête http cookie est un string
                connexion.addRequestProperty("User-agent", "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.0.3705)");
                connexion.addRequestProperty("Cookie", cookie);

J'ai testé avec le traceur les données en parametre sont bien presente dans l'entêtes.

NasserTom

mercredi 6 juin 2007 à 10:16:27 | Re : comment connaitre l'url de redirection d'une url

AlexN

Réponse acceptée !
il est possible effectivement qu'il faille transmettre un cookie pour préserver des informations de session entre les redirections. Ton erreur 404 peut venir de là (le cookie attendu par le serveur n'est pas présent, et au lieu de t'envoyer une erreur de type 400, 401 il répond 404, mais là c'est un choix de celui qui a configuré le serveur).
Il existe une classe Cookie : [ Lien ]
Le httpclient gère également les cookies.

mercredi 6 juin 2007 à 23:32:24 | Re : comment connaitre l'url de redirection d'une url

Nassertom

Membre Club
Bonjour,
Merci pour ces infos,

Je vais abuser, mais je debute en java, j'ai essenciellement fait du vb. et de ce fait je n'ai pas encore bien assimilé toutes les suptilitées de la programmation object.

et je t'avoue avoir beaucoup de mal à exploiter la javadoc.

Te serait il possible de me faire un exemple d'utilisation de cette class.
car je pense qu'elle est la clef de ce que je recherche.

dans mon cas j'ai utilisé la class httpurlconnexion qui me permet de valoriser la cookie dans mon entête html.

cette cookie je l'ai trouvé dans mon logiciel de trace. Celui ci risque de changer avec le temps (ce serait dommage de modifier le code à chaque modif)

je pense qu'avec cette class je peux recup les cookies et les ajouté dans l'entête.

faut il que je la combine à httpurlconnexion ?

le truc est sensé faire
appel du lien 1 avec une cookie (je ne sais pas d'ou elle vient) et si elle est presente il me forward vers le 2eme lien.

le cookie que j'ai dans mes traces resemble à cela ?

        String cookie = "__utma=213768855.676587401.1180808563.1180824555.1180831628.3; __utmz=213768855.1180831628.3.3.utmccn=(organic)|utmcsr=google|utmctr=mon+site|utmcmd=organic; last_folder=0";

D'avance merci


NasserTom

samedi 9 juin 2007 à 15:20:03 | Re : comment connaitre l'url de redirection d'une url

AlexN

Réponse acceptée !
Tu trouveras un exemple ici http://www.javafr.com/codes/REDIRECTION-URL-TRANSMISSION-COOKIES_43051.aspx
Cet exemple utilise la librairie HttpClient au lieu d'utiliser directement les composants fournis par défaut (URL, HttpURLConnection ...)

Il faudra sûrement l'adapter à ta situation.




1 2

Cette discussion est classé dans : problème, page, url, lien, adresse


Répondre à ce message

Sujets en rapport avec ce message

Probleme avec URL [ par Volfield ] Bonjour, j'ai réalisé una APPLET et j'utilise l'objet URL pour faire un lien vers la page HTML qui vient après.J'aimerais passer des parametres dans l Récupérer adresse URL de la page précédente [ par leviz ] Bonjour,Je recherche depuis un moment une solution pour trouver le nom de la page précédent la page actuelle sur laquelle on se trouve (par lequel on Faire un lien vers une page web [ par flolag ] Salut,J'ai vu que pour faire un lien il fallait utiliser ces méthodes : URL url = new URL("monURL");getAppletContext().showDocument(url, "principale") integrer URL dans formulaire [ par ju0123456789 ] Bonjour,Je voudrais integrer, dans un champs de formulaire, automatiquement la partie d'une URL, on ma parlé d'un "?" a mettre dans l'URL mais je n'ai java web chat [ par nager ] Bionjour , j'ai un problème du au fait que je voudrais réaliser un chat qui doit être intégré dans une page webcelà en java Mon problème est que je n Recupérer le code source d'une adresse URL [ par ismailfk ] Bonjour,comment on peut récupérer le code source une adresse URL cad:entre url : exemple www.javafr.comsortie:code source de cette page Ouvrir nouvelles fenêtres dans une fenêtre prédéfinis [ par leviz ] Bonjour, J'aurais un problème dont j'ai beau cherché la solution mais sans résultats. Voici mon problème :Je dispose d'une page avec une série de lien Passer une url en paramètre d'une requete ? [ par el_teedee ] Bonjour,je voudrais passer une url dans un paramètre de ma requête d'une page A vers une page B. Je veux qu'en cliquant sur le lien "lien vers B" de l


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,265 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.