In regel stjoert http://reports.example:80/ fia in proxy, mar lit http://reports.example/ direkt troch. Dy URL's beskriuwe deselde gewoane HTTP-einpunt. De ôfwiking komt meastentiids fan it letterlik fergelykjen fan har parsearre poarten.

URI.getPort() jout -1 werom as der gjin poart yn 'e URI stiet. It ferfangt net de standertwearde foar it skema. In routingbelied dat de wearde mei 80 fergeliket, mist de twadde 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;
}

Pas deselde normalisaasje ta op beide kanten fan 'e fergeliking. Allinnich de oanfreeg-URI reparearje lit in konfigurearre bestimming mei in weilitte poart noch altyd net oerienkomme. Fergelykje de host, de effektive poart en it bedoelde skema; wiis misfoarme of hostleaze bestimmingen ôf fia in definiearre flaterpaad.

Meitsje net fan elke callback in HTTP-beslút

In standertselektor kin ek frege wurde foar ferbiningen fan rauwe sockets, mei it skema socket. In oerienkomst fan host en poart allinnich mei net feroarsaakje dat dy callback in HTTP-proxy werombringt dy't bedoeld is foar URL-oanfragen. Diel net-stipe skema's oan 'e foarige selektor ta, en behâld syn passende gedrach.

Fange dy foarige selektor foardat jo jo eigen ynstallearje. It opsykjen fan 'e hjoeddeiske standert fan binnen de ferfanging kin de ferfanging gewoan wer oanroppe.

Log it skema, de host, de orizjinele poart en de effektive poart by it diagnostisearjen fan in ôfwiking. Fertrou net op ien waarnommen getal of folchoarder fan callbacks oer JDK-ymplemintaasjes hinne. It belied moat foar elke levere URI in korrekt beslút nimme.

Relatearre artikelen