2011-07-13 11 views
10

Para una aplicación de escritorio Java después de que establecer estas propiedadesCómo establecer el proxy HTTP en un applet

System.setProperty("java.net.useSystemProxies","true"); 
System.setProperty("http.proxyHost", "1.1.1.1"); 
System.setProperty("http.proxyPort", "8080"); 

cada conexión HTTP se hará a través del proxy definida.

Pero para un applet éstos no funcionan. (En un visor de applets que hace, sino en un navegador que no funciona.) Applet siempre utiliza estos parámetros que se definen en la configuración del panel \ Java \ red de control \ configuración del proxy .

¿Cómo puedo configurar el proxy en un applet? (Uso de la clase proxy en cada conexión de apertura no es una solución para mí.)

applet está firmado y compilado con Java 1.6

Respuesta

7

Imagino que la verdadera razón por la que el enfoque de las propiedades del sistema no funciona es que para cuando se inicia el applet, el sistema de tiempo de ejecución de Java ya ha leído las propiedades y configurado el selector de proxy predeterminado.

¿Has probado a usar ProxySelector? Consulte la sección 4) de this document.

Por supuesto, esto solo funcionará cuando su applet sea un applet firmado.

+0

ha funcionado gracias – e13420xx

+0

@ e13420xx, 'ProxySelector' trabajado para applet? –

+0

@NikolayKuznetsov - Supongo que sí ... ya que eso es lo que estaba preguntando. –

0

Puede hacerlo mediante API, pero no para cada conexión.

Mire en URL.openConnection(). Delega la llamada al controlador. Handler es creado por la fábrica de controladores (si está registrado). Por lo tanto, debe registrar su propia fábrica, crear su manejador de URL que realiza la conexión URL a través del proxy (llamadas URL.openConnection (proxy)).

La fábrica debe implementar la interfaz URLStreamHandlerFactory y puede registrarse llamando al método estático URL.setURLStreamHandlerFactory().

Cuestiones relacionadas