Java ProxySelector: ukwenza imilela ye-HTTP ne-HTTPS engekho ibe yesimo
Yenza imilela ye-HTTP eshiywe ingekho ibe yesimo ngaphambi kokuqhathanisa izindawo ku-ProxySelector yokwezifiso, futhi gcina imithetho ye-HTTP ngaphandle kokukhetha ama-socket angacwengiwe.
Umthetho uthumela i-http://reports.example:80/ nge-proxy kodwa uvumela i-http://reports.example/ ukuba ihambe ngqo. Lezi ziteshi ezimbili zechaza indawo eyodwa ejwayelekile yokuphela kwe-HTTP. Ukungafani kuvame ukuvela ekuthelekiseni imilela ehlaziyiwe ngokwezwi.
I-URI.getPort() ibuyisela i--1 uma kungekho milela ku-URI. Ayishintshi okumisiwe kwesikimu. Inqubomgomo yomzila eqhathanisa inani ne-80 izogeja i-URL yesibili.
String scheme = uri.getScheme();
int port = uri.getPort();
if (port == -1) {
if ("http".equalsIgnoreCase(scheme)) port = 80;
else if ("https".equalsIgnoreCase(scheme)) port = 443;
}
Sebenzisa ukwenziwa kwesimo okufanayo ezinhlangothini zombili zokuqhathanisa. Ukulungisa kuphela i-URI yesicelo kusashiya indawo emisiwe enomlela oshiywe ingafani. Qhathanisa umsingathi, umlela osebenzayo nesikimu esihlosiwe; nqaba izindawo ezingalungile noma ezingenamsingathi ngendlela yephutha echaziwe.
Ungayenzi yonke i-callback ibe yisinqumo se-HTTP
Isikhethi esimisiwe singabuzwa futhi mayelana nokuxhumana kwama-socket angacwengiwe, kusetshenziswa isikimu se-socket. Ukufana komsingathi nomlela kuphela akufanele kwenze ukuba leyo callback ibuyisele i-proxy ye-HTTP ehloselwe izicelo ze-URL. Dlulisela izikimu ezingasekelwe kusikhethi sangaphambilini, ugcina ukuziphatha kwaso okufanele.
Bamba leso sikhethi sangaphambilini ngaphambi kokufaka esakho. Ukufuna okumisiwe kwamanje ngaphakathi kwesiminyanisi kungase kumane kubize isiminyanisi futhi.
Bhala phansi isikimu, umsingathi, umlela wangempela nomlela osebenzayo uma uhlola ukungafani. Ungathembeli enanini elilodwa elibonwe noma ukulandelana kwe-callback kuzo zonke izinhlelo ze-JDK. Inqubomgomo kufanele yenze isinqumo esifanele kuwo wonke ama-URI anikeziwe.