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

Développement Web en Java Discussion :

Erreur 407 sur lecture page HTML


Sujet :

Développement Web en Java

  1. #1
    Membre éprouvé

    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Janvier 2006
    Messages
    621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Janvier 2006
    Messages : 621
    Points : 1 264
    Points
    1 264
    Par défaut Erreur 407 sur lecture page HTML
    Bonjour à tous,
    j'ai le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public static ArrayList<String> lectureURL(String adresse) throws Exception {
    		ArrayList<String> temporaire = new ArrayList<String>(); 
    		URL url = new URL(adresse);
    		System.out.println("OK URL");
    		BufferedReader in = new BufferedReader(	new InputStreamReader(url.openStream()));
    		System.out.println("OK Streamreader");
    		String inputLine;
    		while ((inputLine = in.readLine()) != null)
    			temporaire.add(inputLine);
    		in.close();
    		return temporaire;
    	    }
    que j'appelle en transmettant une URL tout à fait banale de type
    Ca marchait parfaitement mais depuis un petit moment j'obtiens cette erreur :
    java.io.IOException: Server returned HTTP response code: 407 for URL: http://serveur.domaine/dossier/usageDetails.aspx
    at sun.net.http://www.protocol.http.HttpURLConn...ion.java:1313])
    Le problème est le suivant :
    l'erreur http 407 signifie une erreur d'authentification sur un proxy, or le serveur que je contacte est un serveur INTRANET et non INTERNET, donc je ne passe pas par le proxy. D'ailleurs, je peux le joindre avec IE ou Firefox sans soucis, et sans passer par le proxy.
    L'autre soucis, c'est que ça marchait y a pas longtemps, et plus maintenant, et j'ai pas la possibilité de modifier les réglages réseau sur mon poste (mise en oeuvre de Policies sous Windows).
    Si ça peut aider, j'ai le même soucis en passant par le JAR exporté donc ca semblerait pas venir d'Eclipse.
    J'ai même ajouté les lignes de code suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.setProperty("http.nonProxyHosts ", "*.domaine");
    avant l'appel à InputStreamReader mais je continue à avoir cette erreur 407... Au secours !
    "L'incohérence de ceux qui dirigent et l'incompétence de ceux qui critiquent sont un vibrant hommage à ceux qui exécutent."
    Général George S. PATTON. Messine 1943.

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Il faudrait faire un sniff (avec wireshark par exemple) de la communication pour savoir exactement ce que veux dire ce code. Le serveur envoie vraisemblablement un message d'erreur avec ça.

    Il est possible que le serveur refuse les robot et renvoie ce message, ou, au contraire, exige de passer par un proxy particulier.

    Pour plus de ocntrole, une fois le problème localisé, vous pouvez utiliser la librairies commons httpclient, de jakarta. Elle permet de gérer les cookies, les redirects, les user-agent, etc, ce que ne permet pas facilement URL.

  3. #3
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Points : 7 083
    Points
    7 083
    Par défaut
    Je pencherai entre le transparent proxy et l'authentification NTLM ... Vu que c'est sur l'intranet, je dirais la 2e proposition.

    As-tu essayer d'envoyer ta requête via un client telnet quelconque ?
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

  4. #4
    Membre éprouvé

    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Janvier 2006
    Messages
    621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Janvier 2006
    Messages : 621
    Points : 1 264
    Points
    1 264
    Par défaut
    Citation Envoyé par Nemek Voir le message
    Je pencherai entre le transparent proxy et l'authentification NTLM ... Vu que c'est sur l'intranet, je dirais la 2e proposition.

    As-tu essayer d'envoyer ta requête via un client telnet quelconque ?
    envoyer la requete via un client telnet ? je comprends pas trop. tu peux etre plus explicite ?

    pour "tchize_", je confirme que mon IE et mon Firefox (qui arrivent à lire cette page) ne passent pas par le proxy car ils font explicitement partie de la liste des serveurs à contacter en local sans passer par le proxy.
    "L'incohérence de ceux qui dirigent et l'incompétence de ceux qui critiquent sont un vibrant hommage à ceux qui exécutent."
    Général George S. PATTON. Messine 1943.

  5. #5
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Points : 7 083
    Points
    7 083
    Par défaut
    Essaye de jouer HttpURLConnection en appelant la méthode openConnection de ton URL

    Par exemple avec PuTTY, tu ouvres une connection sur la machine et le port voulu, tu tapes .
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

  6. #6
    Membre éprouvé

    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Janvier 2006
    Messages
    621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Janvier 2006
    Messages : 621
    Points : 1 264
    Points
    1 264
    Par défaut
    Citation Envoyé par Nemek Voir le message
    Essaye de jouer HttpURLConnection en appelant la méthode openConnection de ton URL

    Par exemple avec PuTTY, tu ouvres une connection sur la machine et le port voulu, tu tapes .
    Houla je suis pas spécialiste de ça... c'est quoi le principe de cette manip ?
    "L'incohérence de ceux qui dirigent et l'incompétence de ceux qui critiquent sont un vibrant hommage à ceux qui exécutent."
    Général George S. PATTON. Messine 1943.

  7. #7
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    faire exactement ce que le client web ferais, pour voir quelle réponse on obtiens du serveur.

  8. #8
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Points : 7 083
    Points
    7 083
    Par défaut
    La première étape vise à avoir des détails sur les données échangées entre le serveur et ton programme Java. Mais je pense que la solution de tchize_ est peut-être meilleur sur ce point : utiliser httpclient.

    La seconde vise à savoir le comportement du serveur avec un client des plus classique.


    Concernant ton problème, est-ce que le site Intranet utilise une forme de Single-Sign On ? C'est-à-dire que tu te connectes à un site, ensuite tu es identifié sur l'ensemble (ou une partie) des sites de l'Intranet ?
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

  9. #9
    Membre éprouvé

    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Janvier 2006
    Messages
    621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Janvier 2006
    Messages : 621
    Points : 1 264
    Points
    1 264
    Par défaut
    Citation Envoyé par Nemek Voir le message
    La première étape vise à avoir des détails sur les données échangées entre le serveur et ton programme Java. Mais je pense que la solution de tchize_ est peut-être meilleur sur ce point : utiliser httpclient.

    La seconde vise à savoir le comportement du serveur avec un client des plus classique.


    Concernant ton problème, est-ce que le site Intranet utilise une forme de Single-Sign On ? C'est-à-dire que tu te connectes à un site, ensuite tu es identifié sur l'ensemble (ou une partie) des sites de l'Intranet ?
    oui et non... je m'explique :
    le site que j'essaie d'atteindre utilise une sorte de couche qui permet un login pour plusierus applis avec un seul login (sorte d'authentification forte et centralisée).
    Par contre, lorsque j'essaie d'atteindre un autre serveur qui lui (a ma connaissance) ne passe pas par ce système de gestion d'accès, j'ai exactemebnt le même soucis.
    Du coup, est il possible pour mon code d'ajouter des infos de login de façon simple (genre éviter 50 classes différentes car je suis grand débutant en java) ?
    "L'incohérence de ceux qui dirigent et l'incompétence de ceux qui critiquent sont un vibrant hommage à ceux qui exécutent."
    Général George S. PATTON. Messine 1943.

  10. #10
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par arkhamon Voir le message
    Du coup, est il possible pour mon code d'ajouter des infos de login de façon simple (genre éviter 50 classes différentes car je suis grand débutant en java) ?
    Faut voir le genre d'authentification. Je doute que ce soit du NTLM, car firefox ne le gère pas Donc ca doit plutot etre un système basé sur des cookies partagés.commons http client gère sans soucis les cookies (voir la doc).

  11. #11
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Points : 7 083
    Points
    7 083
    Par défaut
    HTTPUrlConnection également Je l'utilise sans soucis pour une application qui possède une sorte de service web sur un portail d'entreprise.
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

Discussions similaires

  1. Lecture RTSP sur une page HTML
    Par chyrla dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 22/12/2014, 11h46
  2. lecture son sur une page html
    Par rachmout dans le forum Dreamweaver
    Réponses: 1
    Dernier message: 28/03/2008, 10h04
  3. [erreur] Probleme Applet dans page HTML
    Par John Blobsmith dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 10/07/2005, 14h49
  4. Marge sur une page HTML
    Par wollverine dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 28/04/2005, 13h56
  5. Problème de chaine sur une page HTML
    Par Kerod dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 23/11/2004, 16h23

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