Ien tried set in proxy-eigenskip, docht in fersyk en set de âlde wearde werom. In oare tried docht itselde mei in oare proxy. De koade sjocht oardelik út by it lêzen fan boppen nei ûnderen, mar beide triedden feroarje dielde JVM-steat.

System.setProperty() feroaret in systeemeigenskip foar it proses. It heakket gjin rûte oan 'e tried dy't it oanroppen hat. In gelyktydich fersyk kin in wearde sjen dy't skreaun is foar it wurk fan in oar, en in besteande klant hat miskien al syn eigen konfiguraasje fêstlein.

Meitsje de rûte part fan 'e klant

Meitsje foar Java's HTTP-klant klanten mei bewuste proxy-selektearen. Hâld aparte klanten as wurklêsten ferskate routingbelied freegje:

HttpClient client = HttpClient.newBuilder()
    .proxy(ProxySelector.of(
        new InetSocketAddress("203.0.113.10", 8080)))
    .connectTimeout(Duration.ofSeconds(5))
    .build();

De imports binne java.net, java.net.http en java.time. It adres is yllustratyf; foar tastiene tests fan iepenbiere rûtes leveret de HTTP-proxylist kandidaat-einpunten. Konfigurearje fersyktiden en proxy-autentikaasje apart neffens de behoeften fan 'e applikaasje.

De proxy-metoade fan 'e bouwer registrearret in kar op klantnivo. Dat makket it belied makliker te ynspektearjen as in searje globale skriuwen dy't om asynchrone operaasjes hinne wikkelje.

Globale ynstellings hawwe noch nut

Ien proxybelied foar de hiele JVM kin passend wêze as alle dielnimmende klanten it folgje moatte. Set dat belied by it starten fan 'e applikaasje en kontrolearje hokker biblioteken it respektearje.

Problemen ûntsteane as globale eigenskippen as tydlike skeakel foar yndividuele fersiken brûkt wurde. Yn in tsjinner kinne eftergrûnwurkers en biblioteekopropen gelyktydich rinne, sels as jo eigen metoade synkroan liket. Hâld de routingsteat by de klant of ferbining dy't de ferbining besit, sadat in oar fersyk it net healwei it wurk feroarje kin.

Relatearre artikelen