ROME jäsentää syötteen tavut; välityspalvelimen reitti ja tili kuuluvat HTTP-asiakkaalle. Valitulle JDK HttpClientille kiinteä välityspalvelin kuuluu sen builderiin:

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

Sallittua julkisen syötteen testiä varten ilman välityspalvelimen todennusta korvaa paikkamerkki-isäntä ja -portti ehdokkaalla HTTP-välityspalvelinluettelosta. Lisää kyseiselle asiakkaalle käyttöönoton todennus ja pyyntörajoitukset. Kun se on saanut hyväksyttävän vastauksen, anna virta ROMElle:

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

Nykyaikaiset importit ovat com.rometools.rome.io.XmlReader ja SyndFeedInput. Tässä body on vastaanotettu InputStream ja contentType on HTTP Content-Type. XmlReader ottaa huomioon BOMin, kyseiset metatiedot ja XML-määrittelyn. Mielivaltaisella merkistöllä ensin dekoodaaminen voi hukata hyödyllistä todistusaineistoa.

Tarkista HTTP-tila ennen jäsentämistä. Muuten välityspalvelimen kirjautumissivu tai hylkäys voi näyttää XML-virheeltä. Vapauta runko myös hylätyille vastauksille, jotta HTTP-virhe ei jätä virtaa auki.

Kaksi syöte­lähdettä voi käyttää eri tavoin määritettyjä asiakkaita muuttamatta JVM:n välityspalvelinasetuksia kutsujen välillä. Kukin HTTP-asiakas omistaa reittinsä, kun taas ROME omistaa jäsennysvaiheen.

Aiheeseen liittyvät artikkelit