подключение по http из java библиотеки и прочие особенности
Начну со штатной библиотеки java.net
библиотека простая как грабли, тонкая настройка глобальна, а именно - куки, ssl доверие, прокси..., все это настраивается через глобальные переменные и как следствие влияет на все соединения в рамках jvm.
Вопрос о глобальности классов java.* в агентах и LS2J - отдельная тема, я не готов её подробно "раскрывать" (в силу недостаточных компетенций)
код для прокси, продублирую
Начну со штатной библиотеки java.net
библиотека простая как грабли, тонкая настройка глобальна, а именно - куки, ssl доверие, прокси..., все это настраивается через глобальные переменные и как следствие влияет на все соединения в рамках jvm.
Вопрос о глобальности классов java.* в агентах и LS2J - отдельная тема, я не готов её подробно "раскрывать" (в силу недостаточных компетенций)
код для прокси, продублирую
Ссылка скрыта от гостей
(на случай протухания)
Java:
static void assignSystemProxy(String url){
System.setProperty("java.net.useSystemProxies", "true");
System.out.println("detecting proxies");
List l = null;
try {
l = ProxySelector.getDefault().select(new URI(url));
}
catch (URISyntaxException e) {
e.printStackTrace();
}
if (l != null) {
for (Iterator iter = l.iterator(); iter.hasNext();) {
java.net.Proxy proxy = (java.net.Proxy) iter.next();
System.out.println("proxy type: " + proxy.type());
InetSocketAddress addr = (InetSocketAddress) proxy.address();
if (addr == null) {
System.out.println("No Proxy");
} else {
System.out.println("proxy hostname: " + addr.getHostName());
System.setProperty("http.proxyHost", addr.getHostName());
System.out.println("proxy port: " + addr.getPort());
System.setProperty("http.proxyPort", Integer.toString(addr.getPort()));
}
}
}
}