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 ର ମାଲିକାନା ମଧ୍ୟ ଯାଞ୍ଚ କରନ୍ତୁ: HttpClientBuilder ଲେଖେ ଯେ ସ୍ପଷ୍ଟ ଭାବରେ ଦିଆଯାଇଥିବା ସଂଯୋଗ ପରିଚାଳକ ଏହାର ପୃଥକ SSL ବିନ୍ୟାସ ଇନପୁଟକୁ ଅତିକ୍ରମ କରିପାରେ। ଆବଶ୍ୟକ ଫ୍ୟାକ୍ଟ୍ରିଗୁଡ଼ିକୁ ପରିଚାଳକର ରେଜିଷ୍ଟ୍ରିରେ ରଖନ୍ତୁ, ପରବର୍ତ୍ତୀ setSSLContext କଲ ଏହାର ଆଭ୍ୟନ୍ତର ବଦଳାଇବ ବୋଲି ନ ଭାବି।

ଏହି ନିଦାନ ସ୍ଥାନୀୟ ସ୍କିମ ରେଜିଷ୍ଟ୍ରି ସମ୍ବନ୍ଧୀୟ। ପ୍ରକ୍ସି ପ୍ରମାଣୀକରଣ ଚ୍ୟାଲେଞ୍ଜ କିମ୍ବା ପ୍ରତ୍ୟାଖ୍ୟାତ ଗନ୍ତବ୍ୟ ପରବର୍ତ୍ତୀ, ଭିନ୍ନ ଫଳାଫଳ। ସେହି ପ୍ରତିକ୍ରିୟାଗୁଡ଼ିକ ଅନୁସନ୍ଧାନ କରୁଥିବା ବେଳେ ଉଭୟ ଫ୍ୟାକ୍ଟ୍ରି ପଞ୍ଜୀକରଣ ରଖନ୍ତୁ।

ସମ୍ପର୍କିତ ପ୍ରବନ୍ଧ