Java эмне үчүн HTTP сурооңузга SOCKS проксини тандады
Эски Windows прокси чечимдерин колдонуудан мурун ProxySelector жыйынтыгын жана JVM жөндөөлөрүн текшериңиз.
Java суроосу бир нече прокси киргизүүлөрүнө туш болушу мүмкүн: ачык кардар конфигурациясы, демейки селектор, JVM тармак касиеттери жана колдоого алынган операциялык тутум жөндөөлөрү. Журнал күтүлбөгөн жерде SOCKS деп атаса, аны кайсы киргизүү тандаганын аныктаңыз.
Демейки селекторду колдонгон код үчүн так багыт боюнча чечимди текшериңиз:
URI target = URI.create("https://example.com/");
ProxySelector selector = ProxySelector.getDefault();
if (selector != null) {
System.out.println(selector.select(target));
}
Бул селектордун талапкерлерин көрсөтөт. Ал кайсы байланыш акыры ийгиликтүү болгонун далилдебейт, ал эми өзүнүн ачык маршруту бар кардар башка тандоо кылышы мүмкүн.
Колдонуудагы жөндөөлөрдү текшериңиз
http.proxyHost, https.proxyHost, socksProxyHost, алардын портторун жана java.net.useSystemProxies карап чыгыңыз. JDK тармак касиеттеринин документи алардын көлөмүн жана артыкчылыгын сүрөттөйт. Тутумдук проксини аныктоо иштөө учурунда текшерилет; JVMди иштетүүдө аны атайын коюңуз.
Тарыхый жооптор эски Windows диалогдорунун жана эски JDKлердин конкреттүү айкалыштарын сүрөттөйт. Ал отчёттор чечимдин келип чыгышын түшүндүрүшү мүмкүн, бирок учурдагы иштөө чөйрөсүндө ушундай ката бар экенин далилдебейт. Бардык колдонмолор үчүн операциялык тутум жөндөөлөрүн өзгөртүүдөн мурун иштөө чөйрөсүнүн версиясын жана селектордун чыгышын жазып алыңыз.
Эгер колдонмого бир кардар үчүн HTTP прокси керек болсо, ачык прокси конфигурациясы бул талапты такыраак кыла алат. Эгер ага борбордук автоматтык маршруттоо керек болсо, селектор күтүлбөгөн SOCKS жазуусун эмне үчүн алганын же кайтарганын иликтеңиз.
Ыңгайлаштырылган селектор атайын четтетүүлөрдү жана каталарды иштетүүнү сакташы керек. Бардык SOCKS талапкерлерин тандабастан чыпкалоо колдонулушу керек болгон байланыштарды бузушу мүмкүн. Туура эмес эрежени аныктай алган эң кичине көлөм менен оңдоңуз.