Java ProxySelector: د ورکو شویو HTTP او HTTPS پورټونو نورمالول
په خپل ProxySelector کې د منزلونو پرتله کولو دمخه پریښودل شوي HTTP پورټونه نورمال کړئ، او د HTTP قواعد د خام socket غوراوي څخه بهر وساتئ.
یو قاعده http://reports.example:80/ د پراکسي له لارې لیږي خو http://reports.example/ ته اجازه ورکوي چې مستقیم لاړ شي. دا دواړه URLونه ورته عادي HTTP پای ټکی بیانوي. ناسم والی معمولاً د هغوی د تحلیل شویو پورټونو له لغوي پرتلې څخه راځي.
URI.getPort() هغه وخت -1 بیرته راګرځوي چې په URI کې هیڅ پورټ نه وي. دا د سکیم لپاره اصلي ارزښت نه بدلوي. د لارې ټاکلو پالیسي چې ارزښت له 80 سره پرتله کوي، دوهم URL له لاسه ورکوي.
String scheme = uri.getScheme();
int port = uri.getPort();
if (port == -1) {
if ("http".equalsIgnoreCase(scheme)) port = 80;
else if ("https".equalsIgnoreCase(scheme)) port = 443;
}
همدا نورمالول د پرتلې دواړو خواو ته تطبیق کړئ. یوازې د غوښتنې URI سمول لاهم د پریښودل شوي پورټ سره ترتیب شوی منزل بې جوړې پریږدي. کوربه، اغیزمن پورټ او پام شوی سکیم پرتله کړئ؛ خراب یا بې کوربه منزلونه د تعریف شوي تېروتنې لارې له لارې رد کړئ.
هر callback په HTTP پریکړه مه اړوئ
اصلي ټاکونکی کېدای شي د خام socket اړیکو لپاره هم د socket سکیم سره وپوښتل شي. یوازې د کوربه او پورټ جوړېدل نباید هغه callback اړ کړي چې د URL غوښتنو لپاره ټاکل شوی HTTP پراکسي بیرته راوګرځوي. نیمګړي سکیمونه پخواني ټاکونکي ته وسپارئ او د هغه مناسبه چلند وساتئ.
هغه پخوانی ټاکونکی مخکې له دې چې خپل نوی نصب کړئ ونیسئ. د اوسني اصلي ارزښت پلټنه د بدلونکو له داخله کېدای شي بدلونکی بیا ووبولي.
کله چې ناسم والی تشخیصوئ، سکیم، کوربه، اصلي پورټ او اغیزمن پورټ ثبت کړئ. په JDK پلي کولو کې د یو لیدل شوي عدد یا د callback ترتیب باندې تکیه مه کوئ. پالیسي باید د هر وړاندې شوي URI لپاره سمه پریکړه وکړي.