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

Entrée/Sortie Java Discussion :

Connection au travers un proxy


Sujet :

Entrée/Sortie Java

  1. #1
    Membre à l'essai
    Profil pro
    Software Architect
    Inscrit en
    Octobre 2005
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Software Architect

    Informations forums :
    Inscription : Octobre 2005
    Messages : 11
    Points : 18
    Points
    18
    Par défaut Connection au travers un proxy
    J'ai une classe URLUtils qui va lire l'url http://www.yahoo.com. elle est executée comme suis :
    java -Dhttp.proxyHost=eclcache1.ec.goodyear.com -Dhttp.proxyPort=8080 -Dhttp.proxyUser=NGIB962 -Dhttp.proxyPassword=xxx URLUtils

    L'execution donne l'erreur suivante:
    java.io.IOException: Server returned HTTP response code: 407 for URL: http://www.yahoo.com
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1170)
    at URLUtils.dump(URLUtils.java:26)
    at URLUtils.main(URLUtils.java:7)

    Error 407 correspond à un probleme d'authentification.
    Pourtant je suis sur de mes paramètres proxy

    Voici le code de la classe :
    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
    34
    35
    import java.net.*;
    import java.io.*;
    import java.util.Properties;
     
    public class URLUtils {
      public static void main(String s[]) {
        URLUtils.dump("http://www.yahoo.com");
        System.out.println("**************");
      }
     
      public static void dump(String URLName){
        try {
          DataInputStream di = null;
          FileOutputStream fo = null;
          byte [] b = new byte[1];
     
          // PROXY
     
          URL u = new URL(URLName);
          HttpURLConnection con = (HttpURLConnection) u.openConnection();
          //
          // it's not the greatest idea to use a sun.misc.* class
          // Sun strongly advises not to use them since they can
          // change or go away in a future release so beware.
          //
          di = new DataInputStream(con.getInputStream());
          while(-1 != di.read(b,0,1)) {
             System.out.print(new String(b));
          }
        }
        catch (Exception e) {
          e.printStackTrace();
        }
      }
    }

  2. #2
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 414
    Points : 1 996
    Points
    1 996
    Par défaut
    Bonjour,

    Ton programme fonctionne derrière le proxy de notre entreprise. Pourrais-tu nous indiquer ton environnement?

    - OS
    - Version java
    - Type de proxy

    Si tu travailles en unixoïde, utilise l'utilitaire curl pour voir les réponses reçues par le client.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    curl  --proxy-ntlm --proxy PROXY:PROXY_PORT --proxy-user user:password -I www.yahoo.com
    Bien le bonjour chez vous
    Jowo

  3. #3
    Membre à l'essai
    Profil pro
    Software Architect
    Inscrit en
    Octobre 2005
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Software Architect

    Informations forums :
    Inscription : Octobre 2005
    Messages : 11
    Points : 18
    Points
    18
    Par défaut
    OS : ubuntu 7.10
    uname -a
    Linux gislt1703 2.6.22-14-generic #1 SMP Sun Oct 14 23:05:12 GMT 2007 i686 GNU/Linux

    version Java
    java -fullversion
    java full version "1.5.0_13-b05"


    Je n'ai pas de détail sur le proxy, il est géré par a l'exterieur de l'entreprise


    curl --proxy-ntlm --proxy PROXYROXY_PORT --proxy-user user:password -I www.yahoo.com

    HTTP/1.1 407 Proxy Authentication Required
    Proxy-Authenticate: BASIC realm="Goodyear_EMEA_Internet"
    Cache-Control: no-cache
    Pragma: no-cache
    Content-Type: text/html; charset=utf-8
    Proxy-Connection: close
    Set-Cookie: BCSI-CSA3F393D3=2; Path=/
    Connection: close
    Content-Length: 977

  4. #4
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 414
    Points : 1 996
    Points
    1 996
    Par défaut
    Après quelques recherches chez SUN, il est apparu que les propriétés http.proxyUser et http.proxyPassword ne sont supportées par par le package java.net.

    Pourrais-tu tester ce code?

    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
    34
    35
    36
    37
    public class Test {
    	public static void main(String s[]) {
                    String u = (s.length == 0) ? "http://www.yahoo.com" : s[0];
    		Test.dump(u);
    		System.out.println("**************");
    	}
     
    	public static void dump(String URLName) {
    		try {
    			DataInputStream di = null;
    			FileOutputStream fo = null;
    			byte[] b = new byte[1];
     
    			// PROXY Authenticator
    			Authenticator.setDefault(new Authenticator() {
    				protected PasswordAuthentication getPasswordAuthentication() {
    				  return new PasswordAuthentication("PROXY_USER", "PROXY_PASSWORD".toCharArray());
    				}
    			});
     
    			URL u = new URL(URLName);
    			HttpURLConnection con = (HttpURLConnection) u.openConnection();
     
    			//
    			// it's not the greatest idea to use a sun.misc.* class
    			// Sun strongly advises not to use them since they can
    			// change or go away in a future release so beware.
    			//
    			di = new DataInputStream(con.getInputStream());
    			while (-1 != di.read(b, 0, 1)) {
    				System.out.print(new String(b));
    			}
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    	}
    }
    Bien le bonjour chez vous
    Jowo

  5. #5
    Membre à l'essai
    Profil pro
    Software Architect
    Inscrit en
    Octobre 2005
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Software Architect

    Informations forums :
    Inscription : Octobre 2005
    Messages : 11
    Points : 18
    Points
    18
    Par défaut
    ca fonctionne

Discussions similaires

  1. se connecter sur un serveur ftp a travers un proxy
    Par alaparra dans le forum Développement
    Réponses: 1
    Dernier message: 10/10/2008, 10h22
  2. [newbie] Se connecter au travers d'un proxy -
    Par deviante dans le forum C#
    Réponses: 1
    Dernier message: 30/04/2007, 13h59
  3. [Proxy][Socket] Etablir une connection au travers d'un proxy
    Par groskek dans le forum Développement
    Réponses: 1
    Dernier message: 03/03/2006, 20h01
  4. [web] htpps à travers un proxy en perl
    Par Tuco dans le forum Web
    Réponses: 3
    Dernier message: 24/01/2005, 13h32

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