ROME razčlenjuje bajte vira; pot proxyja in račun naj pripadata odjemalcu HTTP. Za izbrani JDK HttpClient fiksni proxy sodi na njegov builder:

HttpClient client = HttpClient.newBuilder()
    .proxy(ProxySelector.of(
        new InetSocketAddress("proxy.example", 8080)))
    .build();

Za dovoljen test javnega vira brez preverjanja pristnosti proxyja zamenjajte nadomestnega gostitelja in vrata s kandidatom s seznama proxyjev HTTP. Temu odjemalcu dodajte preverjanje pristnosti uvajanja in omejitve zahtevkov. Ko prejme sprejemljiv odgovor, pretok predajte ROME:

try (XmlReader reader = new XmlReader(body, contentType)) {
    SyndFeed feed = new SyndFeedInput().build(reader);
}

Sodobni uvozi so com.rometools.rome.io.XmlReader in SyndFeedInput. Tu je body prejeti InputStream, contentType pa je HTTP Content-Type. XmlReader upošteva BOM, te metapodatke in deklaracijo XML. Če najprej dekodirate s poljubnim charsetom, lahko zavržete koristne dokaze.

Pred razčlenjevanjem preverite stanje HTTP. Sicer se prijavna stran proxyja ali zavrnitev lahko pokažeta kot napaka XML. Sprostite tudi telesa zavrnjenih odgovorov, da napaka HTTP ne pusti pretoka odprtega.

Dva vira vira lahko uporabljata različno konfigurirana odjemalca, ne da bi med klici spreminjala lastnosti proxyja JVM. Vsak odjemalec HTTP ima svojo pot, ROME pa korak razčlenjevanja.

Sorodni članki