Connexion distante avec un proxy en utilisant la classe URL

cs_licot Messages postés 2 Date d'inscription jeudi 30 novembre 2000 Statut Membre Dernière intervention 27 octobre 2005 - 25 oct. 2005 à 15:23
meyfab Messages postés 17 Date d'inscription mercredi 1 juin 2005 Statut Membre Dernière intervention 28 octobre 2005 - 28 oct. 2005 à 11:31
Bonjour,

J'utilise un logiciel que je dois modifier pour qu'il puisse passer un proxy.
Avec comme contrainte l'utilisation de la classe URL, voici mon code :

URL test_address= new URL("http","xx.xx.xx.xx",xxxx,""/wwww.toto.fr/index.html");

Ensuite le programme utilise ma variable test_adrress pour établir la connection mais j'ai le message d'erreur suivant : (407)Proxy Authentication Required

Je cherche donc comment renseigner le nom de connxion et mot de passe dans la classe URL, à priori c'est faisable gràce à la méthode set() mais je ne comprend pa tous les paramètres et surtout elle est protected.

Merci d'avance pour votre aide.

3 réponses

meyfab Messages postés 17 Date d'inscription mercredi 1 juin 2005 Statut Membre Dernière intervention 28 octobre 2005
27 oct. 2005 à 15:01
Je vois deux solutions simples :

a.
URL url = new URL("http", // protocol.
"proxy", // Host ou IP du proxy.
-1, // Port du proxy, -1 signifie port par défaut.
"http://monadresse.domaine"); // L'URL de connection.

b.




System.setProperty("proxyHost", "proxy"); // Host ou IP du proxy.
System.setProperty("proxyPort", "-1"); // Port du proxy, -1 signifie port par défaut.
URL url = new URL("http://monadresse.domaine"); // L'URL de connection.
0
cs_licot Messages postés 2 Date d'inscription jeudi 30 novembre 2000 Statut Membre Dernière intervention 27 octobre 2005
27 oct. 2005 à 16:37
J'utilise actuellement la solution a pour attribuer mon addresse & port proxy.

Mon problème est pour spécifier un nom de connexion et un mot de passe lors de la connexion au proxy.

Je ne sais pas comment faire à partir de la classe URL.
0
meyfab Messages postés 17 Date d'inscription mercredi 1 juin 2005 Statut Membre Dernière intervention 28 octobre 2005
28 oct. 2005 à 11:31
Désolé.

Essais :



URL url = new URL(...);

URLConnection connection = url.openConnection();

String login = "username:password";

String encodedLogin = new BASE64Encoder().encodeBuffer(login.getBytes());

connection.setRequestProperty("Proxy-Authorization", "Basic " + encodedLogin);


......



Le tout est de positionner l'authentification en base 64 dans le header HTTP.

A+
0
Rejoignez-nous