hmarchal
Messages postés19Date d'inscriptionjeudi 28 juillet 2005StatutMembreDernière intervention27 octobre 2006
-
17 août 2005 à 13:52
dmaillet
Messages postés500Date d'inscriptionmercredi 20 août 2003StatutMembreDernière intervention11 juillet 2007
-
18 août 2005 à 11:31
Bonjour, je suis débutant en JAVA.
Je suis en train de développer une application qui doit importer une page html.
Or le site est sécurisé (HTTPS) et je dois aussi franchir un proxy pour sortir de l'intranet de mon entreprise.
J'ai réussi à configurer correctement le proxy et à télécharger des pages sur des sites HTTP "classiques". Egalement, j'ai réussi à configurer le SSL et à télécharger des sites HTTPS à partir d'un réseau personnel où il n'y avait pas de Proxy. Le problème c'est quand je cherche à faire les deux en même temps (proxy et https) : les différents bout de code que j'ai trouvé sur internet qui fonctionnaient indépendamment, ne fonctionnent plus ensemble!
Alors en cherchant un peu, je suis tombé sur un bug référencé sur le site de SUN :
Apparamment, il y est question d'un bug si il y a une redirection d'URL. Mais ça n'est pas mon cas. Comme ce bug n'est présent qu'à partir du JRE 1.4, j'ai tout de même essayé de compiler mon programme avec le JRE 1.3.1 en ajoutant les bibliothèques de l'API JSSE. Mais ça ne fonctionne pas mieux, bien que l'exception renvoyée ne soit pas la même. Avec JRE 1.5.0_04 j'obtiens :
java.net.UnknownHostException: "l'URL du site HTTPS"
alors qu'avec JRE 1.3.1 et JSSE 1_0_3_03, j'obtiens :
Bon, je suis un peu perdu et mes connaissances concernant l'accès au réseau sont limitées. Si vous voyez une solution ou si vous avez besoin de plus amples explications sur le code que j'utilise...
Merci d'avance
hmarchal
Messages postés19Date d'inscriptionjeudi 28 juillet 2005StatutMembreDernière intervention27 octobre 2006 18 août 2005 à 11:26
Oups ! je viens de voir une grosse bourde dans mon code quand je précisait le port du proxy, j'avais écris :
System.setProperty( "https.proxyPort", "443" );
Alors que le port de mon proxy est 80 pour tous les protocoles (http,https,ftp,...) comme le précise le panneau de configuration Internet de Windows.
dmaillet
Messages postés500Date d'inscriptionmercredi 20 août 2003StatutMembreDernière intervention11 juillet 2007 18 août 2005 à 09:01
Ton exception avec la 1.5 est pourtont clair , "l'URL du site HTTPS" n'est pas un host connu (je suppose qu'a la place de la phrase en rouge tu as le veritable host???)
hmarchal
Messages postés19Date d'inscriptionjeudi 28 juillet 2005StatutMembreDernière intervention27 octobre 2006 18 août 2005 à 10:34
Oui j'ai un message du genre java.net.UnknownHostException: www.machin.com.
Mais l'exception n'es pas plus claire pour autant : si jamais j'essaie d'atteindre l'URL à partir d'un browser (IExplorer) ça fonctionne, l'URL est valide et le proxy ne la filtre pas. Et si, avec mon prog, j'essaie d'atteindre l'URL sans la sécurité (en spécifiant d'utiliser le protocole HTTP), il n'y a pas de problème non plus.
Alors pourquoi l'hote est inconnu quand j'essaie avec HTTPS ? J'ai essayé plusieurs sites HTTPS différents dont les certificats sont acceptés par défaut dans JAVA. Alors je sais pas...
dmaillet
Messages postés500Date d'inscriptionmercredi 20 août 2003StatutMembreDernière intervention11 juillet 2007 18 août 2005 à 10:44
attends, si tu mets pas le protocole devant ton host, ca ne peut pas marcher:
sur ton exception, il manque le htpp, c'est tout. Un explorer la rajoute par defaut si elle est absente.
Vous n’avez pas trouvé la réponse que vous recherchez ?
hmarchal
Messages postés19Date d'inscriptionjeudi 28 juillet 2005StatutMembreDernière intervention27 octobre 2006 18 août 2005 à 10:54
Merci de tes réponses.
En fait je précise le protocole à ce niveau, quand j'instancie l'URL :
URL url = new URL(args[0]); //avec args[0]=https://www.internet-mineurs.gouv.fr/ (je précise que le site au dessus est un site gouvernemental sur les droits des mineurs )
C'est pas suffisant ?
J'ai vu récemment qu'on pouvait utiliser un autre constructeur (avec plus de paramètres) de la classe URL en découpant l'URL en question selon ses différents champs : le protocole, le fichier, le port, ... J'ai pas essayé parce que je pensais que ça revenait au même.