Zašto je Java izabrala SOCKS proxy za vaš HTTP zahtev
Proverite rezultat ProxySelector-a i važeće JVM postavke pre primene starih Windows proxy zaobilaznih rešenja.
Java zahtev može naići na nekoliko proxy ulaza: eksplicitnu konfiguraciju klijenta, podrazumevani selektor, JVM mrežne osobine i podržane postavke operativnog sistema. Kada se u dnevniku neočekivano pominje SOCKS, utvrdite koji je ulaz to izabrao.
Za kod koji koristi podrazumevani selektor, pregledajte odluku za tačno odredište:
URI target = URI.create("https://example.com/");
ProxySelector selector = ProxySelector.getDefault();
if (selector != null) {
System.out.println(selector.select(target));
}
Ovo prikazuje kandidate selektora. Ne dokazuje koja je veza na kraju uspela, a klijent sa sopstvenom eksplicitnom rutom može doneti drugačiji izbor.
Proverite važeće postavke
Pregledajte http.proxyHost, https.proxyHost, socksProxyHost, njihove portove i java.net.useSystemProxies. JDK dokumentacija o mrežnim osobinama opisuje njihov obim i prioritet. Otkrivanje sistemskog proxyja proverava se pri pokretanju; postavite ga namerno pri pokretanju JVM-a.
Istorijski odgovori opisuju određene kombinacije starih Windows dijaloga i starih JDK-ova. Ti izveštaji mogu objasniti poreklo zaobilaznog rešenja, ali ne dokazuju da trenutno okruženje ima isti problem. Zabeležite verziju okruženja i izlaz selektora pre nego što promenite postavke operativnog sistema za svaku aplikaciju.
Ako aplikaciji treba HTTP proxy za jednog klijenta, eksplicitna proxy konfiguracija može razjasniti taj zahtev. Ako joj je potrebno centralno automatsko usmeravanje, istražite zašto je selektor primio ili vratio neočekivani SOCKS unos.
Prilagođeni selektor treba da sačuva namerne zaobilaznice i obradu grešaka. Neumereno filtriranje svakog SOCKS kandidata može prekinuti veze koje su trebale da ga koriste. Ispravite pogrešno pravilo sa najmanjim obimom koji možete utvrditi.