2011-07-13 3 views
10

Pour une application de bureau java après nous avons mis ces propriétésComment définir Proxy Http dans un applet

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

chaque connexion HTTP sera faite par le proxy défini.

Mais pour une applet ceux-ci ne fonctionne pas. (Dans un applet viewer il fait, mais dans un navigateur, il ne marche pas.) Applet utilise toujours ces paramètres qui sont définis dans le panneau de contrôle \ java \ paramètres réseau \ paramètres de proxy .

Comment puis-je définir le proxy dans une applet? (Utiliser la classe proxy dans chaque connexion d'ouverture est pas une solution pour moi.)

Applet est signé et compilé avec Java 1.6

Répondre

7

J'imagine que la vraie raison pour que l'approche des propriétés du système ne fonctionne pas est Au démarrage de l'applet, le système d'exécution Java a déjà lu les propriétés et configuré le sélecteur de proxy par défaut.

Avez-vous essayé d'utiliser ProxySelector? Reportez-vous à la section 4) de this document.

Bien sûr, cela ne fonctionnera que lorsque votre applet est une applet signée.

+0

cela a fonctionné merci – e13420xx

+0

@ e13420xx, 'ProxySelector' a travaillé pour l'applet? –

+0

@NikolayKuznetsov - Je présume donc ... puisque c'est ce qu'il demandait. –

0

Vous pouvez le faire en utilisant l'API mais pas pour chaque connexion.

Regardez URL.openConnection(). Il délègue l'appel au gestionnaire. Le gestionnaire est créé par l'atelier du gestionnaire (si enregistré). Donc, vous devez enregistrer votre propre fabrique, créez votre gestionnaire d'URL qui effectue une connexion URL via un proxy (appelle URL.openConnection (proxy)).

L'usine doit implémenter l'interface URLStreamHandlerFactory et peut être enregistrée en appelant la méthode statique URL.setURLStreamHandlerFactory().