Mae un edefyn yn gosod priodwedd proxy, yn gwneud cais, ac yn adfer yr hen werth. Mae edefyn arall yn gwneud yr un peth â phroxy gwahanol. Mae'r cod yn edrych yn daclus wrth ei ddarllen o'r top i'r gwaelod, ond mae'r ddau edefyn yn newid cyflwr a rennir yn y JVM.

System.setProperty() yn newid priodwedd system ar gyfer y broses. Nid yw'n atodi llwybr i'r edefyn a'i galwodd. Gall cais cyfamserol weld gwerth a ysgrifennwyd ar gyfer gwaith rhywun arall, ac efallai bod cleient presennol eisoes wedi dal ei ffurfweddiad ei hun.

Gwnewch y llwybr yn rhan o'r cleient

Ar gyfer cleient HTTP Java, crëwch gleientiaid â dewiswyr proxy bwriadol. Cadwch gleientiaid ar wahân pan fo llwythi gwaith angen polisïau llwybro gwahanol:

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

Y mewnforion yw java.net, java.net.http a java.time. Mae'r cyfeiriad yn ddarluniadol; ar gyfer profion llwybrau cyhoeddus a ganiateir, mae'r rhestr proxy HTTP yn darparu penawdau ymgeisiol. Ffurfweddwch derfynau amser ceisiadau a dilysu proxy ar wahân yn ôl anghenion y cymhwysiad.

Mae dull proxy'r adeiladydd yn cofnodi dewis ar lefel cleient. Mae hynny'n gwneud y polisi'n haws i'w archwilio na dilyniant o ysgrifeniadau byd-eang wedi'u lapio o amgylch gweithrediadau asyncronaidd.

Mae gan osodiadau byd-eang ddefnydd o hyd

Gall un polisi proxy ar draws y JVM fod yn briodol pan fwriedir i bob cleient sy'n cymryd rhan ei ddilyn. Gosodwch y polisi hwnnw wrth gychwyn y cymhwysiad a gwiriwch pa lyfrgelloedd sy'n ei barchu.

Mae problemau'n codi pan ddefnyddir priodweddau byd-eang fel switsh dros dro ar gyfer ceisiadau unigol. Mewn gweinydd, gall gweithwyr cefndir a galwadau llyfrgell redeg ar yr un pryd hyd yn oed os yw'ch dull chi'n ymddangos yn gydamserol. Cadwch gyflwr llwybro gyda'r cleient neu'r cysylltydd sy'n berchen ar y cysylltiad, fel na all cais arall ei newid hanner ffordd drwy'r gwaith.

Erthyglau cysylltiedig