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'нун альтернативалуу жазылышы эмес. HTTPS максаттуу сайтты таанууну улантышы үчүн барар URL'ди сактаңыз.

java.net.http'ни сактоого милдеттүү колдонмо анын ордуна шайкеш HTTP прокси акыркы чекитин колдоно алат, анын ичинде кийинки SOCKS туташуусун иштеткен бекитилген адаптер. Бул реалдуу компонентти жана дагы бир кирүү чегин кошот; 8080 портун 1080ге алмаштыруу бул котормону бербейт.

Тандоо жана кабыл алуу көрүнүктүү болсун

Тандагычтын жыйынтыгын жана кардар чындап ачкан туташууну эки башка жазып алыңыз. Биринчиси саясаттын чыгарылышын сүрөттөйт; экинчиси ишке ашырылыш аны кабыл алганын аныктайт.

Корутундуларды колдонулган аткаруу чөйрөсүнө жана транспортко байлаңыз. Бир сокет ишке ашырылышы колдонгон JVM SOCKS касиеттери ар бир HTTP китепканасы аларга кайрылат деген убада эмес. Маршрут милдеттүү болгондо, колдоого алынбаган прокси түрү сырткы ийгиликтүү көрүнгөн түз суроону кабыл алардан мурун аныкталышы керек.

Тектеш макалалар