Как установить Http Proxy в апплете - PullRequest
10 голосов
/ 13 июля 2011

Для настольного Java-приложения после того, как мы установили эти свойства

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

каждое http-соединение будет осуществляться через определенный прокси.

Но для апплета это не работает . (В программе просмотра апплета это работает, но в браузере - нет). Апплет всегда использует эти настройки, которые определены в панели управления \ java \ network settings \ proxy settings.

Как установить прокси в апплете? (Использование прокси-класса в каждом открывающемся соединении не является решением для меня.)

Апплет подписан и скомпилирован с Java 1.6

Ответы [ 2 ]

7 голосов
/ 13 июля 2011

Я полагаю, что настоящая причина того, что подход к системным свойствам не работает, заключается в том, что к моменту запуска апплета система времени выполнения Java уже прочитала свойства и настроила селектор прокси по умолчанию.

Вы пробовали использовать ProxySelector? См. Раздел 4) этого документа .

Конечно, это может сработать, только если ваш апплет является подписанным апплетом.

0 голосов
/ 13 июля 2011

Вы можете сделать это с помощью API, но не для каждого соединения.

Посмотрите на URL.openConnection (). Он делегирует вызов обработчику. Обработчик создается фабрикой обработчиков (если зарегистрирован). Итак, вы должны зарегистрировать свою собственную фабрику, создать свой обработчик URL, который выполняет подключение URL через прокси (вызывает URL.openConnection (proxy)).

Фабрика должна реализовывать интерфейс URLStreamHandlerFactory и может быть зарегистрирована путем вызова статического метода URL.setURLStreamHandlerFactory ().

...