I-SOCKS endpoint ikusa kuwebhusayithi. Uzakwabo we-TLS ngaphakathi kwalokho kuxhumana iwebhusayithi ngokwayo, ngakho dlulisa igama lomhosi lwendawo oya kuyo ku-socket factory enezingqimba:

String destination = "example.com";
int destinationPort = 443;
Proxy proxy = new Proxy(
    Proxy.Type.SOCKS,
    new InetSocketAddress("127.0.0.1", 1080)
);

try (Socket transport = new Socket(proxy)) {
    transport.connect(
        InetSocketAddress.createUnresolved(destination, destinationPort),
        5000
    );
    SSLSocketFactory factory =
        (SSLSocketFactory) SSLSocketFactory.getDefault();
    try (SSLSocket tls = (SSLSocket) factory.createSocket(
            transport, destination, destinationPort, true)) {
        SSLParameters parameters = tls.getSSLParameters();
        parameters.setEndpointIdentificationAlgorithm("HTTPS");
        tls.setSSLParameters(parameters);
        tls.setSoTimeout(15000);
        tls.startHandshake();
        // Send the application's HTTPS request through tls.
    }
}

Lesi siqephu sicabanga ukungeniswa okujwayelekile kwe-Java networking ne-TLS, ukulungiselelwa kokuthemba okuzenzakalelayo okukhona kanye nokuxhumana kwe-SOCKS okungadingi ubufakazi be-proxy. Kwenza ukuxhawula izandla; uhlelo kusamele luthumele isicelo se-HTTP ngefomethi elindelwe iseva. Ngemigomo ye-HTTPS yomphakathi emizileni yomphakathi evunyelwe, uhlu lwama-proxy e-SOCKS lunikeza ama-endpoint angaba khona; fanisa inguqulo yeseva nokusekelwa kwegama lomhosi nalo mzila we-socket ye-Java.

Funda ubunikazi obubili esibonelweni

127.0.0.1:1080 iyindawo yokuphela ye-proxy, efinyeleleka kule nqubo ye-Java. destination ne-destinationPort bakhomba iwebhusayithi. I-createUnresolved igcina lelo gama lomhosi lomzila we-SOCKS esikhundleni sokulixazulula kusenesikhathi kuklayenti.

I-createSocket enezingqimba ithola ubunikazi bendawo oya kuyo. I-setEndpointIdentificationAlgorithm("HTTPS") icela ngokusobala ukuhlolwa kwayo kwegama lomhosi. Ukuthembela kuchunge lwezitifiketi lwe-SSLSocket eluhlaza akukufakazeli ngokwako ukuthi ukuqinisekiswa kwegama lomhosi kunikwe amandla. Ukushintsha igama le-proxy noma i-loopback ukuze kucindezelwe ukungafani kungase kuqinisekise i-endpoint engalungile.

Gcina ukuthembela nokuhlanza nezigaba zako

Ifekthri ezenzakalelayo isebenzisa ukuhleleka kokuthemba okulungiselwe kwe-JVM. Uhlelo olunezimfuneko eziyimfihlo lungasebenzisa ifekthri yalo ye-SSLContext eqaliswe ngendlela efanele esikhundleni salokho. Lokho kukhetha kuhlukene nomzila we-SOCKS; umphathi wokuthemba owamukela isitifiketi ngasinye akalungisi igama lozakwabo elingalungile.

Ukwenqatshwa kwe-SOCKS kwenzeka ngaphambi kwe-TLS; isitifiketi esingathenjwayo noma igama lomhosi elingalungile kuyahluleka phakathi ne-TLS; iphutha le-HTTP lingalandela ngemuva kwalokho. Ukungena ku-proxy kugunyaza isicelo somhubhe hhayi ukuqinisekisa iwebhusayithi engaphakathi kuwo.

Ukuvala i-socket enezingqimba lapho ukuvala okuzenzakalelayo kuvuliwe kuvala ukuthutha kwayo. Umkhakha wensiza wangaphandle nawo uvala lokho kuthutha uma ukusonga noma ukuxhawula izandla kwehluleka ngaphambi kokuqedwa okuvamile.

Izihloko ezihlobene