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 :

Recupérer une page web sur un serveur HTTPS


Sujet :

Java

  1. #1
    Membre averti
    Inscrit en
    Janvier 2006
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 257
    Points : 308
    Points
    308
    Par défaut Recupérer une page web sur un serveur HTTPS
    Bonjour,

    Je souhaiterais recuperer une page web sur un serveur web HTTPS. Pour du HTTP classic j'ai fait la méthode suivante qui me renvoie le code de la page HTML de l'url specifié :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    public static String getIpFrom(String adresse) {
             String toreturn = null;
             try {
             // creation d'un objet URL
             URL url = new URL(adresse);
             // on etablie une connection a cette url
             URLConnection uc = url.openConnection();
             // on y cree un flux de lecture
             InputStream in = uc.getInputStream();
             // on lit le premier bit
             int c = in.read();
             // on cree un StringBuilder pour par la suite y ajouter tout les bit lus
             StringBuilder build = new StringBuilder();
             // tant que c n'est pas egale au bit indiquant la fin d'un flux...
             while (c != -1) {
             build.append((char) c);
             // ...on l'ajoute dasn le StringBuilder...
             c = in.read();
             // ...on lit le suivant
             }
             // on retourne le code de la page
             toreturn = build.toString();
     
             } catch (MalformedURLException e) {
     
             e.printStackTrace();
             } catch (IOException e) {
     
             e.printStackTrace();
             }
             return toreturn;
             }
    sa marche très bien cela me renvoie le code de la page web par contre je n'arrive pas a recuperer de la meme manière une page HTTPS car je ne sais pas comment charger le certificat necessaire à l'accès a la page . j'ai chercher mais rien de concluant jusque la...

    Si vous avez une idée ...

    Merci

    guis

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    230
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 230
    Points : 271
    Points
    271
    Par défaut
    renseigne toi à propos de l'API HTTPClient de Jakarta, elle permet d'implémenter un client HTTP. Ceci dit je ne suis pas sûr qu'elle réponde à tes attentes

  3. #3
    Membre averti
    Inscrit en
    Janvier 2006
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 257
    Points : 308
    Points
    308
    Par défaut
    Le probleme c'est que j'ai besoin d'un client HTTPS pas HTTP ...
    ++

  4. #4
    Expert éminent sénior
    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
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    C'est bizarre car j'ai testé ton code et cela marche très bien
    On pourrait avoir ton stacktrace ??


    Sinon deux remarques :
    • Utilises un try/finally pour fermer le flux à la fin de la lecture.
    • Utilises un buffer pour faire une lecture par bloc plutôt que octet par octet...


    a++

  5. #5
    Membre averti
    Inscrit en
    Janvier 2006
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 257
    Points : 308
    Points
    308
    Par défaut
    Oui sa marche très bien pour du HTTP mais pas pour une url HTTPS j'ai un probleme du type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
    	at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Unknown Source)
    	at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(Unknown Source)
    	at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Unknown Source)
    	at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Unknown Source)
    	at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(Unknown Source)
    	at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(Unknown Source)
    	at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Unknown Source)
    	at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Unknown Source)
    	at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(Unknown Source)
    	at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)
    	at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(Unknown Source)
    	at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(Unknown Source)
    	at sun.net.www.protocol.https.HttpsClient.afterConnect(Unknown Source)
    	at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(Unknown Source)
    	at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
    	at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(Unknown Source)
    	at Test2.getIpFrom(Test2.java:21)
    	at Start.main(Start.java:11)
    Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
    	at sun.security.validator.PKIXValidator.doBuild(Unknown Source)
    	at sun.security.validator.PKIXValidator.engineValidate(Unknown Source)
    	at sun.security.validator.Validator.validate(Unknown Source)
    	at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.validate(Unknown Source)
    	at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(Unknown Source)
    	at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(Unknown Source)
    	... 14 more
    Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
    	at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(Unknown Source)
    	at java.security.cert.CertPathBuilder.build(Unknown Source)
    	... 20 more
    null

    grosso modo il me dit qu'il trouve pas le certificat pour acceder au serveur mais je sais pas comment faire pour lui dire ou est mon certificat qui est un fichier pkcs12 qui contient le fameux certificat... voila

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 19
    Points : 29
    Points
    29
    Par défaut
    up !!
    j'ai un problème similaire. personne n'a de réponse?

  7. #7
    Membre du Club
    Inscrit en
    Mars 2005
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 100
    Points : 60
    Points
    60
    Par défaut
    c'est marqué comem résolu!!! y a t une solution donc a ce probleme?.

    merci

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

Discussions similaires

  1. Ouvrir une page web sur mon ordinateur(serveur web) a partir de mon telephone
    Par cassidy dans le forum Développement Mobile en Java
    Réponses: 1
    Dernier message: 08/02/2012, 09h22
  2. Enregistrer une page web sur le serveur
    Par guigui69 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 20/05/2008, 11h35
  3. Ouvrir une page web sur un client à partir d'un serveur
    Par Maestro57 dans le forum Langage
    Réponses: 6
    Dernier message: 04/04/2008, 08h24
  4. Affichage d'une page web sur le serveur Apache
    Par marcandre dans le forum Apache
    Réponses: 9
    Dernier message: 04/02/2008, 18h10
  5. retourner une page web sur le port 80 en gcc
    Par jfcocu dans le forum Réseau
    Réponses: 9
    Dernier message: 23/11/2005, 14h15

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