Per què Java va triar un proxy SOCKS per a la seva sol·licitud HTTP
Inspeccioneu el resultat de ProxySelector i la configuració efectiva de la JVM abans d'aplicar solucions antigues de proxy de Windows.
Una sol·licitud Java pot trobar diverses entrades de proxy: configuració explícita del client, el selector predeterminat, propietats de xarxa de la JVM i paràmetres del sistema operatiu admesos. Quan un registre esmenta SOCKS inesperadament, identifiqueu quina entrada l'ha triat.
Per al codi que utilitza el selector predeterminat, inspeccioneu la decisió per a la destinació exacta:
URI target = URI.create("https://example.com/");
ProxySelector selector = ProxySelector.getDefault();
if (selector != null) {
System.out.println(selector.select(target));
}
Això informa dels candidats del selector. No demostra quina connexió ha acabat tenint èxit, i un client amb una ruta explícita pròpia pot fer una tria diferent.
Comproveu la configuració efectiva
Reviseu http.proxyHost, https.proxyHost, socksProxyHost, els seus ports i java.net.useSystemProxies. La documentació de propietats de xarxa del JDK descriu el seu abast i la seva precedència. La descoberta del proxy del sistema es comprova en arrencar; establiu-la deliberadament en iniciar la JVM.
Les respostes històriques descriuen combinacions concretes de diàlegs antics de Windows i JDK antics. Aquests informes poden explicar l'origen d'una solució provisional, però no estableixen que un entorn d'execució actual tingui el mateix error. Registreu la versió de l'entorn d'execució i la sortida del selector abans de canviar la configuració del sistema operatiu per a cada aplicació.
Si l'aplicació necessita un proxy HTTP per a un client, una configuració explícita de proxy pot fer més clar aquest requisit. Si necessita encaminament automàtic central, investigueu per què el selector ha rebut o retornat l'entrada SOCKS inesperada.
Un selector personalitzat hauria de preservar les exclusions intencionades i el tractament de fallades. Filtrar tots els candidats SOCKS indiscriminadament pot trencar connexions que havien d'utilitzar-ne un. Corregiu la regla incorrecta amb l'abast més petit que pugueu identificar.