JDK 25 HttpClient ניצט נישט די SOCKS רוטעס פון ProxySelector
קלײַבט אַ Java HTTP טראַנספּאָרט וואָס שטיצט טאַקע SOCKS אַנשטאָט זיך פֿאַרלאָזן בלויז אויפֿן טיפּ וואָס אַ ProxySelector גיט אומקער.
אַ Java פּראָקסי אָביעקט באַשרײַבט אַ רוטע. דער נעץ־קליענט באַשליסט נאָך אַלץ וואָסערע סאָרטן רוטעס ער קען ניצן. דאָס איז וויכטיק ווען דער פֿאַראַנענער ענדפּונקט רעדט SOCKS און די אַפּליקאַציע ניצט java.net.http.HttpClient.
אין דער JDK 25 אימפּלעמענטאַציע וואָס ווערט דאָ באַטראַכט, דער בעטן־קאָד פֿונעם HTTP קליענט באַקומט אַ HTTP קאַנדידאַט פֿונעם סעלעקטאָר. אַ SOCKS קאַנדידאַט מאַכט אים נישט דורכפֿירן SOCKS פֿאַרהאַנדלונגען; די אימפּלעמענטאַציע קען ממשיך זײַן אָן אַ פּראָקסי. דערפֿאַר איז אַ געראָטענע ענטפֿער נישט קיין גענוג באַווײַז אַז דער SOCKS איינסאַץ פֿון אַ ספּעציעלן סעלעקטאָר איז געניצט געוואָרן.
קלײַבט קודם דעם טראַנספּאָרט
פֿאַר אַ באַשטייענדיקער אַפּליקאַציע אויף URLConnection קען מען געבן דעם פּראָטאָקאָל־באַהאַנדלער אַ געשטיצטן בפֿירוש־פּראָקסי ביים עפענען דעם פֿאַרבינדונג:
Proxy route = new Proxy(Proxy.Type.SOCKS,
new InetSocketAddress("proxy.example", 1080));
URLConnection connection = URI.create("https://service.example/")
.toURL().openConnection(route);
connection.setConnectTimeout(5000);
connection.setReadTimeout(15000);
פֿאַר דערלויבטע פּרובירן אויף פּובליקע צילן, ניצט אַ פּאַסיקן SOCKS ענדפּונקט פֿון אײַער דינסט אָדער פֿון דער SOCKS פּראָקסי ליסטע. דאָס איז אַן אַנדער קליענט API, נישט קיין אַנדער אויסלייג פֿון HttpClient.Builder.proxy. האַלט דעם ציל־URL כּדי HTTPS זאָל ממשיך דערקענען דעם געמיינטן וועבזײַטל.
אַן אַפּליקאַציע וואָס מוז באַהאַלטן java.net.http קען אַנשטאָט ניצן אַ פּאַסיקן HTTP פּראָקסי ענדפּונקט, אַרײַנגערעכנט אַ באַשטעטיקטער אַדאַפּטער וואָס באַהאַנדלט דעם ווײַטערדיקן SOCKS פֿאַרבינדונג. דאָס לייגט צו אַן עכטער קאָמפּאָנענט און נאָך אַ צוטריט־גרענעץ; פֿאַרבייטן פּאָרט 8080 אויף 1080 גיט נישט די איבערזעצונג.
האַלט אויסוואַל און אָננעם זעעוודיק
פֿאַרשרייבט סיי דעם רעזולטאַט פֿונעם סעלעקטאָר און סיי דעם פֿאַרבינדונג וואָס דער קליענט עפנט טאַקע. דער ערשטער באַשרײַבט דעם פּאָליטיק־אויסלאָז; דער צווייטער באַשטימט צי די אימפּלעמענטאַציע האָט אים אָנגענומען.
פֿאַרבינדט מסקנות מיטן געניצטן לויפֿ־סבֿיבֿה און טראַנספּאָרט. JVM SOCKS אייגנשאַפֿטן וואָס איין סאָקעט־אימפּלעמענטאַציע ניצט זענען נישט קיין צוזאָג אַז יעדע HTTP ביבליאָטעק פֿרעגט זיי אָפּ. ווען די רוטע איז פֿאַרפֿליכטיקט, דאַרף מען דערקענען אַ נישט־געשטיצטן פּראָקסי טיפּ איידער מען נעמט אָן אַ פּאָזיטיוו אויסזעענדיקע דירעקטע בקשה.