Java ProxySelector: normalisera manglandi HTTP- og HTTPS-portar
Normalisera útgloymda HTTP-portar, áðrenn tú samanber mál í einum serstøkum ProxySelector, og halt HTTP-reglur uttan fyri val av ráum socketum.
Ein regla sendir http://reports.example:80/ gjøgnum proxy, men letur http://reports.example/ fara beint. Hesar URL'arnar lýsa sama vanliga HTTP-endapunkt. Mismunurin kemur vanliga av at samanbera greinaðu portarnar orðarætt.
URI.getPort() gevur -1 aftur, tá eingin portur vísir í URI-inum. Hann setur ikki vanliga virðið í staðin fyri skemið. Ein routing-politikkur, sum samanber virðið við 80, missir ta aðru URL'ina.
String scheme = uri.getScheme();
int port = uri.getPort();
if (port == -1) {
if ("http".equalsIgnoreCase(scheme)) port = 80;
else if ("https".equalsIgnoreCase(scheme)) port = 443;
}
Nýt somu normalisering á báðar síður av samanberingini. At rætta bert URI-inið á fyrispurninginum letur eitt uppsett mál við útgloymdum porti framvegis uttan samsvar. Samanber host, virknan port og ætlað skema; vísa frá skeivum ella hostleysum málum gjøgnum ein skilgreindan feilveg.
Ger ikki hvørt afturkall til eina HTTP-avgerð
Ein sjálvgefins veljari kann eisini verða spurdur fyri samband við ráum socketum, við skemann socket. Bert samsvar í host og porti má ikki fáa tað afturkallið at geva ein HTTP-proxy aftur, sum er ætlaður fyri URL-fyrispurningar. Let eftir óstudd skemum til fyrrverandi veljaran, og varðveit hóskandi atferð hansara.
Tak fyrrverandi veljaran, áðrenn tú setur tín egna ístaðin. At leita eftir núverandi sjálvgefna virðinum innaní avloysaranum kann bara kalla avloysaran aftur.
Skráset skema, host, upprunaligt port og virkið port, tá tú greinar ein mismun. Steðga ikki á einum sæddum tali ella raðfesting av afturkallum millum JDK-útførslur. Politikkurin eigur at taka eina rætta avgerð fyri hvørt latið URI.