ROME Feeds: pane puhverserver HTTP-kliendile
Lase HTTP-kliendil hallata puhverserveri marsruutimist ja oleku käsitlemist, seejärel anna selle voog ja sisutüüp ROME XML-lugejale.
ROME parsib voo baite; puhverserveri marsruut ja konto peaksid kuuluma HTTP-kliendile. Valitud JDK HttpClienti puhul kuulub fikseeritud puhverserver selle builderile:
HttpClient client = HttpClient.newBuilder()
.proxy(ProxySelector.of(
new InetSocketAddress("proxy.example", 8080)))
.build();
Lubatud avaliku voo testiks ilma puhverserveri autentimiseta asenda kohatäitega host ja port kandidaadiga HTTP puhverserverite loendist. Lisa sellele kliendile juurutuse autentimine ja päringupiirangud. Kui see on saanud vastuvõetava vastuse, anna voog ROME-le:
try (XmlReader reader = new XmlReader(body, contentType)) {
SyndFeed feed = new SyndFeedInput().build(reader);
}
Kaasaegsed importid on com.rometools.rome.io.XmlReader ja SyndFeedInput. Siin on body vastuvõetud InputStream ja contentType on HTTP Content-Type. XmlReader arvestab BOM-i, neid metaandmeid ja XML-deklaratsiooni. Suvalise charsetiga esmalt dekodeerimine võib kasuliku tõendi ära visata.
Kontrolli HTTP olekut enne parsimist. Vastasel juhul võib puhverserveri sisselogimisleht või keeldumine paista XML-veana. Vabasta kehad ka tagasilükatud vastuste puhul, et HTTP-viga ei jätaks voogu avatuks.
Kaks vooallikat saavad kasutada erinevalt seadistatud kliente, muutmata kõnede vahel JVM-i puhverserveri atribuute. Iga HTTP-klient omab oma marsruuti, samal ajal kui ROME omab parsismisetappi.