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

Java Discussion :

Récuperer vrai url


Sujet :

Java

  1. #1
    Membre habitué
    Inscrit en
    Août 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Août 2009
    Messages : 13
    Par défaut Récuperer vrai url
    Bonjour

    Tout d'abord je tiens a remercier les gens de ce forum car cela fait des années que je l'utilise en lecture pour trouver plein d'info

    Mon problème est le suivant:

    Je cherche à récupérer un fichier à une adresse (par exemple: http://mon_site/repertoire/nomfichier.pdf)

    Or je n'ai pas l'url direct mais plutôt:

    http://mon_site/a=150&t=789

    Avez vous une idée comment faire.

    Actuellement je fais une connexion standard:

    connexion = (HttpURLConnection) url.openConnection();
    puis

    connexion.getURL()

    mais l'url reste toujours en http://mon_site/a=150&t=789
    je n'ai pas trouvé de moyen de faire la conversion en http://mon_site/repertoire/nomfichier.pdf.

    Petite info je suis en java6 et c'est une application stand alone

    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,

    Citation Envoyé par k2tm2001 Voir le message
    Or je n'ai pas l'url direct mais plutôt:

    http://mon_site/a=150&t=789
    Que veux-tu dire exactement par là ?
    Que te donne cette première URL ?
    • Une page HTML contenant la nouvelle URL ?
    • Une redirection HTTP vers la nouvelle URL ?
    • Autre chose ?


    Si tu es dans le premier cas il va falloir parser le code HTML de la page.
    Si tu es dans le second cas, c'est automatiquement géré par l'URLConnection : si tu récupère la première URL cela suivra automatiquement la redirection, donc tu n'as rien à faire...

    a++

  3. #3
    Membre habitué
    Inscrit en
    Août 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Août 2009
    Messages : 13
    Par défaut
    En fait je reçois l'url par mail.

    Le code réponse de la requête http est 200 donc pas de redirection.

    Alors que si je saisie l'url dans Firefox par exemple, il trouve bien le fichier et me demande de le télécharger avec le bon nom. Il fais donc une "redirection" ou une recalcul d'adresse (j'avoue que je ne sais pas quel terme utiliser )


    bref je comprends pas

    Est ce que cela peut venir du fait que je passe par un proxy???

  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 k2tm2001 Voir le message
    Le code réponse de la requête http est 200 donc pas de redirection.
    Les redirections sont implicites et complètement transparente...

    On pourrait voir ton code complet ?

    Citation Envoyé par k2tm2001 Voir le message
    Alors que si je saisie l'url dans Firefox par exemple, il trouve bien le fichier et me demande de le télécharger avec le bon nom. Il fais donc une "redirection" ou une recalcul d'adresse (j'avoue que je ne sais pas quel terme utiliser )
    Le problème c'est qu'il y a plusieurs moyen de faire cela, et sans savoir ce que te renvoi la première page c'est difficile de t'aider...

    a++

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 764
    Par défaut
    Citation Envoyé par k2tm2001 Voir le message
    Alors que si je saisie l'url dans Firefox par exemple, il trouve bien le fichier et me demande de le télécharger avec le bon nom. Il fais donc une "redirection" ou une recalcul d'adresse (j'avoue que je ne sais pas quel terme utiliser )
    Ou tout simplement, le site que tu appelles t'envoie un fichier PDF.
    Une URL n'est pas une adresse physique. Il faut plutôt la voir comme une requête, interprétée par le serveur web, qui te renvoie alors ce qu'il veut (une page HTML, un fichier, une erreur 404...).
    Il est possible que, même si tu connaissais l'adresse "physique" du fichier sur le serveur, il t'en refuserait l'accès si tu la tapais directement dans ta barre d'adresse...
    Il est également possible que le fichier n'existe pas sur le serveur, mais qu'il soit généré à la demande lorsque tu effectues ta requête...

    Bref.
    Puisque quand tu utilises cette URL tu obtiens bien le fichier voulu, quel est ton problème ? Que cherches-tu à faire et pourquoi ne peux-tu pas te contenter de cette adresse ?

  6. #6
    Membre habitué
    Inscrit en
    Août 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Août 2009
    Messages : 13
    Par défaut
    Que veux tu voir dans on code?
    car je ne peux pas tout mettre dedans, la classe est longue

    SI c'est juste la connexion puis la façon de retrouver la vrai url voila:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    String urlVal="mon url";
    URL url = new URL(urlVal);
    HttpURLConnection  connexion = (HttpURLConnection) url.openConnection();
    connexion.getContent();
     
    String vraiURL = connexion.getURL().toString();
    String nameFile = vraiURL.substring(vraiURL.lastIndexOf("/"));
    String urlPath = vraiURL.substring(0, vraiURL.lastIndexOf("/") + 1);

    Si tu veux une vrai url pour faire le test, je peux te l'envoyer par mail si tu veux

  7. #7
    Membre habitué
    Inscrit en
    Août 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Août 2009
    Messages : 13
    Par défaut
    Citation Envoyé par Astartee Voir le message
    Ou tout simplement, le site que tu appelles t'envoie un fichier PDF...
    Une URL n'est pas une adresse physique. Il faut plutôt la voir comme une requête, interprétée par le serveur web, qui te renvoie alors ce qu'il veut (une page HTML, un fichier, une erreur 404...). Il est possible que, même si tu connaissais l'adresse "physique" du fichier sur le serveur, il t'en refuserait l'accès si tu la tapais directement dans ta barre d'adresse.

    Bref.
    Puisque quand tu utilises cette URL tu obtiens bien le fichier voulu, quel est ton problème ? Que cherches-tu à faire et pourquoi ne peux-tu pas te contenter de cette adresse ?
    L'extension pdf est un exemple.
    En fait, le type de fichier que je dois récupérer est de type JAD. Un fichier jad contient toujours dans le même répertoire d'autres fichiers que je dois aussi récupérer. Donc j'ai besoin de savoir le path du fichier pour pouvoir récupérer les autres (le contenu du jad me donne les noms des autres fichiers )

  8. #8
    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
    Utilises getInputStream() pour lire les données reçu de l'URL...
    Cela nous donneras plus d'info sur le type de redirection.

    a++

  9. #9
    Membre habitué
    Inscrit en
    Août 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Août 2009
    Messages : 13
    Par défaut
    Le type renvoyé par getInputStream est:
    sun.net.www.protocol.http.HttpURLConnection$HttpInputStream

    Le code réponse est 200.

    L'url contenue dedans est la même que celle d'entrée donc pas celle que je cherche à avoir.

  10. #10
    Membre habitué
    Inscrit en
    Août 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Août 2009
    Messages : 13
    Par défaut
    Personne n'a d'idée?

    snif

  11. #11
    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 adiGuba Voir le message
    Utilises getInputStream() pour lire les données reçu de l'URL...
    Le lire cela ne veut pas dire l'afficher :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    InputStream in = getInputStream();
    try {
        byte[] buf = new byte[1024];
        int len;
        while ( (len=in.read(buf)) >= 0 ) {
            System.out.write(buf, 0, len);
        }
    } finally {
        in.close();
    }

    a++

  12. #12
    Membre habitué
    Inscrit en
    Août 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Août 2009
    Messages : 13
    Par défaut
    Je sais très bien comment on fait pour récupérer le contenu du fichier, il y a plein de facon de le faire même.

    Ma problème est de connaitre cette vrai url et ainsi pouvoir récupérer les fichiers qui sont autour, sinon mon programme ne pourra jamais marcher dans ce cas!

  13. #13
    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 adiGuba Voir le message
    Cela nous donneras plus d'info sur le type de redirection.

  14. #14
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 764
    Par défaut
    Si le serveur web te donne un moyen de connaître l'emplacement physique du fichier dans sa réponse (et comme je te l'ai déjà dit ce n'est pas certain), alors il va falloir chercher l'information dans la réponse, par exemple en lisant le flux comme te le propose adiGuba...
    Maintenant, si tu ne veux pas essayer de résoudre ton problème, tu peux toujours continuer à poser des questions, ça ne te fera pas avancer (on ne va pas pouvoir analyser pour toi un flux que tu es le seul a connaître, quand bien même on accepterait de le faire)


    EDIT mais mais mais j'arrête pas de me faire doubler par adiGuba aujourd'hui

  15. #15
    Membre habitué
    Inscrit en
    Août 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Août 2009
    Messages : 13
    Par défaut
    J'ai regardé déjà dans la réponse et il n'y a rien, tu crois que j'attends bêtement que qq m'aide!!!
    Je sais très bien que vous pouvez pas le faire pour moi, je suis pas un débutant en programmation et je trouve très déplacé ta remarque.

    Pour info (et avant ta réponse et même avant la création, de mon sujet sur le forum) j'avais déjà analysé tous les objets, flux ... que je pouvais, mais rien, nada, peau de balle...

    SI personne ne sait et bien je continuerai tout seul et si je trouve je donnerai la réponse car je partage ma connaissance aussi.
    Bref salut...

  16. #16
    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
    Disons que sans info sur le type de redirection ni sur le contenu renvoyé par la page, cela risque d'être difficile de t'aider...


    a++

  17. #17
    Membre habitué
    Inscrit en
    Août 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Août 2009
    Messages : 13
    Par défaut
    Citation Envoyé par k2tm2001 Voir le message
    Le code réponse est 200.
    Et dans le message de la réponse il y a OK

    Ce n'est pas une page qui est renvoyé mais directement le flux du fichier

    Je sais avec ca, chui dans la mouise...

  18. #18
    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 k2tm2001 Voir le message
    Ce n'est pas une page qui est renvoyé mais directement le flux du fichier
    Donc il n'y a pas de redirection...

    Regardes le contenu des headers HTTP, sauf erreur tu devrais y retrouver le nom du fichier.

    Par contre s'il n'y a pas de redirection tu ne pourras pas obtenir son URL exacte.

    a++

  19. #19
    Membre habitué
    Inscrit en
    Août 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Août 2009
    Messages : 13
    Par défaut
    Bon en fait chui tellement dans mon truc que j'ai même pas vu que le stream n'etait pas celui du fichier mais d'autre chose qui me reponds la chose suivante:
    <!-- This page is restricted for search engines and bots 1-->

    Tout le monde a droit de le dire la-> chui un boulet


    En gros ce que je comprends c'est que le serveur voit que je ne suis pas un navigateur mais un autre type de programme et du coup il me bloque la redirection qu'il doit faire.

    Connaissais vous un moyen de se faire passer pour un navigateur, bref comment changer le user agent (enfin si je me trompe pas)?

  20. #20
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 764
    Par défaut
    Citation Envoyé par k2tm2001 Voir le message
    Bon en fait chui tellement dans mon truc que j'ai même pas vu que le stream n'etait pas celui du fichier mais d'autre chose qui me reponds la chose suivante: <!-- This page is restricted for search engines and bots 1-->
    Tout le monde a droit de le dire la-> chui un boulet
    huhuhu


    Citation Envoyé par k2tm2001 Voir le message
    Connaissais vous un moyen de se faire passer pour un navigateur, bref comment changer le user agent (enfin si je me trompe pas)?
    Une petite recherche sur le forum et tu tombes sur ça :
    http://www.developpez.net/forums/d38...de-source-url/
    (après, je ne sais pas si ça marche *bien*)

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [technique] Cacher la vrai URL et afficher une autre URL ?
    Par schnito dans le forum Général Conception Web
    Réponses: 21
    Dernier message: 04/01/2012, 12h54
  2. [XSLT] récuperation d'URL
    Par d4v1d dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 29/06/2007, 11h11
  3. Récuperation de URL qui se trouve dans la barre d'adresse
    Par MyWork dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 06/04/2007, 11h06
  4. Récuperer l'url courante ?
    Par Hikage dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 30/03/2006, 09h25
  5. [Host] Récuperer l'url tapé
    Par yolepro dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 24/10/2005, 10h40

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