Java Proxy

Sacado de esta pagina.

Para salir a internet mediante un proxy con Java tienes las siguientes opciones:

HTTP

En la llamada a la JVM, al invocar la clase:

$ java -Dhttp.proxyHost=webcache.mydomain.com MiClaseConMetodoMain
$ java -Dhttp.proxyHost=webcache.mydomain.com -Dhttp.proxyPort=8080 MiClaseConMetodoMain
$ java -Dhttp.proxyHost=webcache.mydomain.com -Dhttp.proxyPort=8080-Dhttp.noProxyHosts=”localhost|host.mydomain.com” MiClaseConMetodoMain

En el codigo de la clase:

System.setProperty("http.proxyHost", "webcache.mydomain.com");
System.setPropery("http.proxyPort", "8080");

// Next connection will be through proxy.
URL url = new URL("http://java.sun.com/");
InputStream in = url.openStream();

// Now, let's 'unset' the proxy.
System.setProperty("http.proxyHost", null); // From now on http connections will be done directly.

HTTPS

htttps.proxyHost
https.proxyPort
http.nonProxyHosts

FTP

ftp.proxHost
ftp.proxyPort
ftp.nonProxyHosts

Configurando mas de un proxy:

$ java -Dhttp.proxyHost=webcache.mydomain.com -Dhttp.proxyPort=8080 -Dftp.proxyHost=webcache.mydomain.com -Dftp.proxyPort=8080 MiClaseConMetodoMain

SOCKS

socksProxyHost
socksProxyPort (default 1080)

Si defines un proxy HTTP y uno SOCKS,

  • tiene preferencia el HTTP.
  • El proxy SOCKS sera ignorado, para conexiones HTTP y SOCKS
  • Una conexion FTP, en esta configuracion, iria por SOCKS.

LA CLASE: java.net.Proxy

//creamos proxy HTTP
SocketAddress addr = new InetSocketAddress("webcache.mydomain.com", 8080);
Proxy proxy = new Proxy(Proxy.Type.HTTP, addr);

// lo invocamos
URL url = new URL("http://java.sun.com/");
URConnection conn = url.openConnection(proxy);

// no queremos invocarlo
URL url2 = new URL("http://infos.mydomain.com/");
URLConnection conn2 = url2.openConnection(Proxy.NO_PROXY);

//creamos proxy SOCK
SocketAddress addr = new InetSocketAddress("socks.mydomain.com", 1080);
Proxy proxy = new Proxy(Proxy.Type.SOCKS, addr);

// lo invocamos
URL url = new URL("ftp://ftp.gnu.org/README");
URLConnection conn = url.openConnection(proxy);


// Invocacion especifica de proxy para una conexion Socket
Socket socket = new Socket(proxy);
InetSocketAddress dest = new InetSocketAddress("server.foo.com", 1234);
socket.connect(dest);

// no queremos invocarlo
Socket socket = new Socket(Proxy.NO_PROXY);
socket.connect(new InetAddress("localhost", 1234));

LA CLASE: java.net.ProxySelector

Determina para que conexiones usar un proxy u otro

public abstract class ProxySelector {
        public static ProxySelector getDefault();
        public static void setDefault(ProxySelector ps);
        public abstract List<Proxy> select(URI uri);
        public abstract void connectFailed(URI uri,
                SocketAddress sa, IOException ioe);
}
Anuncios
Java Proxy

Antiguos manuales sobre Windows 2003 Server

Referencia a mis primeros manuales, alla por el 2004.

Servidor de Correo Multidominio con Microsoft Exchange 2003 sobre Windows 2003 Server
DNS sobre Windows 2003 Server
SERVIDOR FTP SOBRE IIS6.0
Antiguos manuales sobre Windows 2003 Server