IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

API standards et tierces Java Discussion :

URL et URLConnection (java.net)


Sujet :

API standards et tierces Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2006
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 42
    Par défaut URL et URLConnection (java.net)
    Bonjour,
    Je souhaite récupérer une URL "redirigée".
    En fait, si je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    URL u = new URL("http://www.developpez.com/")
    et que je cherche ensuite à ouvrir un flux (InputStream) via (appel équivalent à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     URLConnection c = u.openConnection(); 
    c.getInputStream();
    ) pour lire depuis cette URL, cela marchera. Mais l'URL réellement utilisée est http://www.developpez.com/index.html.
    Le problème est que ça peut être aussi index.htm, ou index.php pour d'autres sites, et que je n'arrive pas à récupérer l'URL que java utilise vraiment pour ouvrir le flux, celle comprenant le fichier.

    Lorsque je fais getURL() sur l'objet URLconnection, il renvoie toujours l'URL passée en paramètre lors de la construction de l'URL, et pas celle réellement utilisée. Le champs url de la classe URLConenction n'est pas mis à jour une fois l'ouverture du flux faite.

    Comment faire pour la récupérer directement sans m'amuser à tester quel suffixe de fichier est le bon ?

    Merci d'avance.

  2. #2
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    Il n'y a pas de redirection HTTP.

    D'ailleurs la page index.html ne semble pas exister puisqu'elle fait une redirection vers l'index...

    Enfin les vrai redirections sont parfaitement géré par l'URLConnection...

    a++

  3. #3
    Membre averti
    Inscrit en
    Février 2006
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 42
    Par défaut
    Bonjour, j'ai du mal me faire comprendre.

    Quand on accède à une page style http://www.developpez.com/, on se retrouve en fait sur index.html ou index.htm ou autre index.qqchose, mais avec URLConnection, l'URL réellement accédée est l'url complète http://www.developpez.com/index.html, comme avec un navigateur.
    C'est juste un exemple. Quand on donne le contenu d'un dossier en url, le navigateur va chercher une page nommée index.html ou autre, idem avec URLConnection. Je voudrais juste récupérer cette vraie URL..

  4. #4
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par atmakefka Voir le message
    Quand on accède à une page style http://www.developpez.com/, on se retrouve en fait sur index.html ou index.htm ou autre index.qqchose, mais avec URLConnection, l'URL réellement accédée est l'url complète http://www.developpez.com/index.html, comme avec un navigateur.
    Non : lorsque tu accèdes à http://www.developpez.com/ tu obtiens directement http://www.developpez.com/.
    Tu ne peux pas présumer l'existence d'un index.html ou autre chose...

    Citation Envoyé par atmakefka Voir le message
    C'est juste un exemple. Quand on donne le contenu d'un dossier en url, le navigateur va chercher une page nommée index.html ou autre, idem avec URLConnection. Je voudrais juste récupérer cette vraie URL..
    Non : ce n'est pas le navigateur ou URLConnection qui fait cela, mais le serveur...

    Donc tu n'a aucun moyen de le savoir, mis à part si le serveur faire une redirection HTTP (mais c'est plutôt rare).



    Si tu expliquais plutôt ce que tu veux faire ?


    a++

  5. #5
    Membre averti
    Inscrit en
    Février 2006
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 42
    Par défaut
    Mais je ne comprends pas, j'ai écrit une méthode pour calculer la taille d'un fichier, et que je donne le lien www.developpez.com ou www.developpez.com/index.html, j'obtiens la même taille, donc je me dis que forcément à un moment l'InputStream que je récupère pointe sur le index.html même quand on ne donne que le lien de l'hôte, et ce bien que le lien donné ne mentionnait pas le fichier, et que je peux donc récupérer l'adresse complète.


    C'est en fait pour enregistrer une page, dans le cadre du développement d'un aspirateur de site. Si l'utilisateur rentre http://www.developpez.com/ comme url, ou si je trouve un lien de ce type dans une page, j'aurai bien mon flux sur le fichier index; mais pour recopier le fichier localement, je n'ai pas le nom du fichier "index.html", et vu que ce nom peut varier, ça m'ennuie un peu.

  6. #6
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par atmakefka Voir le message
    Mais je ne comprends pas, j'ai écrit une méthode pour calculer la taille d'un fichier, et que je donne le lien www.developpez.com ou www.developpez.com/index.html, j'obtiens la même taille, donc je me dis que forcément à un moment l'InputStream que je récupère pointe sur le index.html même quand on ne donne que le lien de l'hôte, et ce bien que le lien donné ne mentionnait pas le fichier, et que je peux donc récupérer l'adresse complète.
    www.developpez.com/index.html n'existe pas, et fait une redirection vers www.developpez.com/...



    Citation Envoyé par atmakefka Voir le message
    C'est en fait pour enregistrer une page, dans le cadre du développement d'un aspirateur de site. Si l'utilisateur rentre http://www.developpez.com/ comme url, ou si je trouve un lien de ce type dans une page, j'aurai bien mon flux sur le fichier index; mais pour recopier le fichier localement, je n'ai pas le nom du fichier "index.html", et vu que ce nom peut varier, ça m'ennuie un peu.
    Il te suffit d'utiliser un nom par défaut...

    a++

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. java.net.URL et serveur Tomcat
    Par nin2 dans le forum Langage
    Réponses: 3
    Dernier message: 23/08/2010, 17h57
  2. java.net.URL + arborescence
    Par franfr57 dans le forum Général Java
    Réponses: 1
    Dernier message: 13/08/2009, 19h25
  3. [tomcat][memoire] java.net.URL et fuite mémoire
    Par Seiya dans le forum Tomcat et TomEE
    Réponses: 6
    Dernier message: 09/03/2009, 10h41
  4. Réponses: 3
    Dernier message: 18/04/2006, 22h49
  5. [ java.net ] récupérer un fichier PDF à partir d'une URL
    Par nico2280 dans le forum Entrée/Sortie
    Réponses: 7
    Dernier message: 10/11/2005, 11h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo