ROME ontleed feed-bytes; die HTTP-kliënt moet hul proxy-roete en -rekening besit. Vir 'n gekose JDK HttpClient hoort 'n vaste proxy op sy bouer:

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

Vir 'n toegelate publieke-feed-toets sonder proxy-verifikasie, vervang die plekhouer-gasheer en -poort met 'n kandidaat uit die HTTP-proxylys. Voeg die ontplooiing se verifikasie en versoekbeperkings by daardie kliënt. Nadat dit 'n aanvaarbare antwoord verkry het, gee die stroom aan ROME:

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

Die moderne invoere is com.rometools.rome.io.XmlReader en SyndFeedInput. Hier is body die ontvangde InputStream en contentType die HTTP Content-Type. XmlReader oorweeg die BOM, daardie metadata en die XML-verklaring. Om eers met 'n willekeurige karakterstel te dekodeer kan nuttige bewyse weggooi.

Ondersoek die HTTP-status voor ontleding. 'n Proxy-aanmeldbladsy of weiering kan andersins as 'n XML-fout verskyn. Stel ook liggame vir verwerpte antwoorde vry, sodat 'n HTTP-fout nie sy stroom oop laat nie.

Twee feed-bronne kan verskillend gekonfigureerde kliënte gebruik sonder om JVM-proxy-eienskappe tussen oproepe te verander. Elke HTTP-kliënt besit sy roete terwyl ROME die ontledingstap besit.

Verwante artikels