ROME Feeds: vendosni proxy-n te klienti HTTP
Lëreni klientin HTTP të zotërojë rrugëzimin e proxy-t dhe trajtimin e statusit, pastaj kaloni rrjedhën dhe llojin e përmbajtjes te lexuesi XML i ROME.
ROME analizon bajtët e feed-it; rruga e proxy-t dhe llogaria duhet t'i përkasin klientit HTTP. Për një JDK HttpClient të zgjedhur, një proxy fiks vendoset në builder-in e tij:
HttpClient client = HttpClient.newBuilder()
.proxy(ProxySelector.of(
new InetSocketAddress("proxy.example", 8080)))
.build();
Për një test të lejuar të feed-it publik pa vërtetim proxy, zëvendësoni hostin dhe portën e vendmbajtësit me një kandidat nga lista e proxy-ve HTTP. Shtoni vërtetimin e vendosjes dhe kufijtë e kërkesave te ai klient. Pasi të marrë një përgjigje të pranueshme, dorëzojini rrjedhën ROME:
try (XmlReader reader = new XmlReader(body, contentType)) {
SyndFeed feed = new SyndFeedInput().build(reader);
}
Importet moderne janë com.rometools.rome.io.XmlReader dhe SyndFeedInput. Këtu body është InputStream-i i marrë dhe contentType është HTTP Content-Type. XmlReader merr parasysh BOM-in, ato metadata dhe deklaratën XML. Dekodimi fillimisht me një charset arbitrar mund të hedhë poshtë prova të dobishme.
Inspektoni statusin HTTP përpara analizimit. Përndryshe një faqe hyrjeje proxy ose një refuzim mund të shfaqen si gabim XML. Lironi trupat edhe për përgjigjet e refuzuara, që një gabim HTTP të mos e lërë rrjedhën e tij të hapur.
Dy burime feed-i mund të përdorin klientë të konfiguruar ndryshe pa ndryshuar vetitë e proxy-t të JVM-së midis thirrjeve. Çdo klient HTTP zotëron rrugën e vet, ndërsa ROME zotëron hapin e analizimit.