Main Contents

Proxies Java : http, ftp, socks

java

Il vous est surement déjà arrivé de devoir utiliser un proxy pour de multiples raisons. Le cas que je vais expliquer brièvement dans cet article concerne le proxy http implémenté en Java.

En effet pour les besoins d’un développement autour d’un FTP, je devais pouvoir utiliser un proxy http.

Java propose depuis, cela fait tellement longtemps que je ne pourrai même pas vous le dire :mrgreen: , l’utilisation de propriétés system (System Properties), Soit :

  • Au démarage de votre application : java -Dsystemeproperties=value myApp
  • Par le biais de la classe System et de la méthode setProperty(String, String)

Avec ces méthodes, configurer un proxy http revenait à démarrer votre applicationd de la sorte :

java -Dhttp.proxyHost=proxy.soaplanet.net -Dhttp.proxyPort=8080

ou en utilisant la classe System dans votre code :

1
2
System.setProperty("http.proxyHost", "proxy.soaplanet.net");
System.setPropery("http.proxyPort", "8080");

Pour info, il existe un dernier paramètre pour les proxies http (noProxyHosts), je vous laisse cependant le soin de lire la documentation officielle Sun sur les proxies ==> ici <==.

Depuis la version 5 de Java, une nouvelle classe a été ajoutée au package java.net (il doit surement y en avoir d’autres depuis la V 6) : Proxy. Cette classe permet la définition de trois types de proxy : DIRECT, HTTP et SOCKS.

Avec cette nouvelle classe les développements ressemble désormais à :

1
2
3
4
5
6
7
8
9
10
11
12
// Definition du proxy
SocketAddress addr = new InetSocketAddress(proxy_host, proxy_port);
Proxy proxy = new Proxy(Proxy.Type.HTTP, addr);
 
// Creation de la connexion ftp
URL url = new URL("ftp://proxy.soaplanet.net/null/exemple.txt");
URLConnection conn = url.openConnection(proxy);
 
// Construction et préparation du flux d'entree
InputStream is = conn.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader bfr = new BufferedReader(isr);

Comme je l’ai dis plus haut, il existe une documentation officielle, que vous retrouverez ==> ici <==. Vous pourrez alors y découvrir comment implémenter d'autres types de proxies.

admin @ février 10, 2009

Laisser un commentaire


Feed