Apache HttpClient 4 යෙදුමක HTTPS ගමනාන්තය යනු සෑම සම්බන්ධතාවයක්ම TLS සමඟ ආරම්භ වේ යැයි නොවේ. සාමාන්‍ය HTTP ප්‍රොක්සියට සංකේතනය නොකළ සම්බන්ධතාවයකින් ළඟා වේ, ඉන්පසු CONNECT උමඟ විවෘත කරයි සහ ගමනාන්තය දෙසට TLS ස්ථර වේ.

අභිරුචි සම්බන්ධතා කළමනාකරු https පමණක් ලියාපදිංචි කරන්නේ නම්, පළමු ප්‍රොක්සි පිම්ම UnsupportedSchemeException: http protocol is not supported සමඟ අසාර්ථක විය හැක.

4.5 API සඳහා, එම කළමනාකරු තැනීමේදී කර්මාන්තශාලා දෙකම ඇතුළත් කරන්න:

var registry = RegistryBuilder.<ConnectionSocketFactory>create()
    .register("http", PlainConnectionSocketFactory.getSocketFactory())
    .register("https", tlsFactory)
    .build();

var manager = new PoolingHttpClientConnectionManager(registry);
var client = HttpClients.custom()
    .setConnectionManager(manager)
    .setProxy(new HttpHost("proxy.example.net", 8080, "http"))
    .build();

tlsFactory යනු යෙදුමේ පවතින SSLConnectionSocketFactory වන අතර, අපේක්ෂිත විශ්වාසය සහ සත්කාරක නාම පරීක්ෂාව සමඟිනි. පෙන්වා ඇති වර්ග Apache 4 හි org.apache.http පැකේජවලට අයත් වේ. මෙම කොටස Java හි දේශීය විචල්‍ය වර්ග අනුමානය උපකල්පනය කරයි; පැරණි Java කේතය පැහැදිලි වර්ග භාවිත කළ හැක.

නිවැරදි කළ කළමනාකරු ඉල්ලීම සඳහා සැබවින්ම භාවිත වන සේවාදායකයට සම්බන්ධ කරන්න. ප්‍රොක්සි සත්‍යාපනයකින් තොරව අවසර ලත් පොදු HTTPS ඉල්ලීමක් සඳහා, HTTP ප්‍රොක්සි ලැයිස්තුවේ HTTP සටහනක් HttpHost හි ප්‍රොක්සි ලිපිනය පිරවිය හැක. වෙනත් builder වින්‍යාස කිරීම දැනටමත් තැනූ සේවාදායකය යාවත්කාලීන නොකරයි.

builder හි අයිතිය ද පරීක්ෂා කරන්න: පැහැදිලිව සපයන ලද සම්බන්ධතා කළමනාකරුට එහි වෙනම SSL වින්‍යාස ආදාන ඉක්මවා යා හැකි බව HttpClientBuilder වාර්තා කරයි. අවශ්‍ය කර්මාන්තශාලා කළමනාකරුගේ ලේඛනයේ තබන්න, පසුව setSSLContext ඇමතුමක් එහි අභ්‍යන්තරය ප්‍රතිස්ථාපනය කරනු ඇතැයි උපකල්පනය කිරීම වෙනුවට.

මෙම රෝග විනිශ්චය දේශීය ක්‍රම ලේඛනයට අදාළ වේ. ප්‍රොක්සි සත්‍යාපන අභියෝගයක් හෝ ප්‍රතික්ෂේප කළ ගමනාන්තයක් පසුව එන, වෙනස් ප්‍රතිඵලයකි. එම ප්‍රතිචාර විමර්ශනය කරන අතරතුර කර්මාන්තශාලා ලේඛන දෙකම තබා ගන්න.

අදාළ ලිපි