په 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 غوښتنه به د هغه داخلي برخې بدلې کړي.

دا تشخیص د سیمه‌ایز سکیم راجستر په اړه دی. د پراکسي تصدیق ننګونه یا رد شوی منزل وروستی، بېل نتیجه ده. د هغو ځوابونو د څېړنې پر مهال دواړه فابریکې ثبت وساتئ.

اړوندې مقالې