2011-07-13 16 views
10

aplikacji Java pulpitu po tym jak ustawić te właściwościJak ustawić proxy HTTP w aplet

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

każde połączenie http zostanie wykonana przez zdefiniowany pełnomocnika.

Ale aplet nich nie działa. (W widza apletu to robi, ale w przeglądarce nie robi). Applet zawsze używa tych ustawień, które są zdefiniowane w Ustawienia panelu sterowania \ Java \ Sieć \ Ustawienia proxy .

Jak ustawić serwer proxy w aplecie? (przy użyciu klasy proxy w każdym połączeniu otwarcia nie jest rozwiązaniem dla mnie.)

aplet jest podpisany i skompilowany z Java 1.6

Odpowiedz

7

Wyobrażam sobie, że prawdziwym powodem, że podejście Właściwości systemu nie działa to że do czasu uruchomienia apletu, środowisko wykonawcze Java już odczytało właściwości i skonfigurowało domyślny selektor proxy.

Czy próbowałeś używać ProxySelector? Patrz sekcja 4) z this document.

Oczywiście działa to tylko wtedy, gdy aplet jest podpisanym apletem.

+0

to zadziałało dzięki – e13420xx

+0

@ e13420xx, 'ProxySelector' pracował dla apletu? –

+0

@NikolayKuznetsov - Przypuszczam, że tak ... ponieważ o to pytał. –

0

Można to zrobić za pomocą interfejsu API, ale nie dla każdego połączenia.

Zobacz URL.openConnection(). To deleguje połączenie do obsługi. Handler jest tworzony przez fabrykę handlerów (jeśli jest zarejestrowany). Musisz więc zarejestrować własną fabrykę, stworzyć swoją obsługę adresów URL, która wykonuje połączenie URL przez serwer proxy (wywołuje URL.openConnection (proxy)).

Fabryka musi implementować interfejs URLStreamHandlerFactory i można go zarejestrować, wywołując metodę statyczną URL.setURLStreamHandlerFactory().