අභිරුචි TCP ප්‍රොටොකෝලයකට HTTP ප්‍රොක්සියක් හරහා ගමන් කළ හැක්කේ එම ප්‍රොක්සිය ගමනාන්තයට CONNECT අවසර දෙන විටය. යෙදුම් ප්‍රොටොකෝලය HTTP වීම අවශ්‍ය නැත: HTTP උමංගය ස්ථාපිත කරයි, පසුව යෙදුම තමන්ගේම බයිට් එහි ඇතුළත හුවමාරු කරයි.

OpenJDK 25 Socket(Proxy) තුළ HTTP ප්‍රොක්සි මාර්ගයක් සපයයි. එහි ක්‍රියාත්මක කිරීම CONNECT හුවමාරුව සිදු කර යෙදුමට භාවිත කිරීමට සම්බන්ධිත සොකට් එකක් ලබා දෙයි.

Proxy route = new Proxy(
    Proxy.Type.HTTP,
    new InetSocketAddress("proxy.example", 8080));

try (Socket socket = new Socket(route)) {
    socket.setSoTimeout(10000);
    socket.connect(
        InetSocketAddress.createUnresolved("tcp-service.example", 8443),
        5000);
    InputStream input = socket.getInputStream();
    OutputStream output = socket.getOutputStream();
}

මෙම කොටස java.net සහ java.io හි පන්ති භාවිත කරයි. අන්ත ලක්ෂ්‍ය දෙකම ප්‍රතිස්ථාපනය කර try කොටසින් පිටවීමට පෙර ප්‍රොටොකෝල හුවමාරුව සිදු කරන්න. අවසර ලත් පොදු TCP ඉලක්කයක් සඳහා, එම ඉලක්කයේ තොටුපළ සඳහා CONNECT අවසරය පරීක්ෂා කිරීමෙන් පසුව පමණක් HTTP ප්‍රොක්සි ලැයිස්තුවෙන් HTTP අපේක්ෂකයන් තෝරන්න. ප්‍රොක්සි ලිපිනය යනු Java මුලින්ම සම්බන්ධ වන ස්ථානයයි; connect වෙත ලබා දෙන ලිපිනය ප්‍රොක්සිය ළඟා විය යුතු සේවාව හඳුනාගනී.

විසඳා නොගත් ගමනාන්තය මෙම ක්‍රියාත්මක කිරීමේ CONNECT ඉල්ලීම සඳහා එහි සත්කාරක නාමය රඳවා ගනී. විසඳාගත් InetSocketAddress ඒ වෙනුවට එම ඉල්ලීමට එහි විසඳාගත් IP ලිපිනය සපයයි. ප්‍රොක්සියට සේවා නාමය විසඳීමට සිදු වූ විට හෝ සත්කාරක නාමය මත පදනම් වූ ප්‍රතිපත්තියක් යෙදිය යුතු විට එම වෙනස වැදගත් වේ.

සාර්ථක සම්බන්ධතාවයක් ඔබට ඉතිරි කරන දේ

ලැබෙන ප්‍රවාහ උමංගයේ සේවාවේ දත්ත රැගෙන යයි. ඔබේ යෙදුම කියවා ඉවත් කළ යුතු වෙනම HTTP ප්‍රතිචාරයක් ඒවා නිරාවරණය නොකරයි. දෙවන CONNECT හුවමාරුවක් එකතු කිරීම JDK උමංගය දැනටමත් ස්ථාපිත කිරීමෙන් පසු සේවාවට HTTP පෙළ යවනු ඇත.

උදාහරණය සම්බන්ධතා කාල සීමාවක් සහ සොකට් කියවීමේ කාල සීමාවක් සකසයි; ඒවා වෙන වෙනම පාලන වන අතර, යෙදුම් සැසිය සඳහා එකම සමස්ත අවසන් දිනයක් නොවේ.

CONNECT අවසරය තවමත් ප්‍රොක්සියට අයත් ය. සාමාන්‍ය වෙබ් ඉල්ලීම් ඉදිරියට යවන අන්ත ලක්ෂ්‍යයකට සේවාවේ තොටුපළ ප්‍රතික්ෂේප කළ හැකිය හෝ උමංගය විවෘත කිරීමට පෙර සත්‍යාපනය ඉල්ලා සිටිය හැකිය. එම අසාර්ථකතා උමංගය පිළිගෙන පසුව ඔබේ යෙදුම් ප්‍රොටොකෝලය ප්‍රතික්ෂේප කරන සේවාදායකයෙන් වෙන් කර තබන්න.

එම ප්‍රොටොකෝලයට TLS අවශ්‍ය නම්, සම්බන්ධිත සොකට් හරහා සේවාවේ අපේක්ෂිත සත්කාරක නාමය සහ සාමාන්‍ය සහතික පරීක්ෂාවන් සමඟ TLS සාකච්ඡා කරන්න. CONNECT පමණක් ප්‍රවාහය සංකේතනය නොකරයි. සැබෑ HTTP API සඳහා, HTTP පණිවිඩ ද හසුරුවන බැවින් HTTP සේවාලාභියා වඩාත් පහසු අතුරුමුහුණත ලෙස පවතී.

අදාළ ලිපි