ROME parseert de feedbytes; de proxy-route en het account horen bij de HTTP-client. Voor een gekozen JDK HttpClient hoort een vaste proxy op zijn builder:

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

Voor een toegestane test van een openbare feed zonder proxy-authenticatie vervangt u de tijdelijke host en poort door een kandidaat uit de HTTP-proxylijst. Voeg de authenticatie van de deployment en de verzoeklimieten aan die client toe. Nadat hij een aanvaardbaar antwoord heeft gekregen, geeft u de stream aan ROME:

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

De moderne imports zijn com.rometools.rome.io.XmlReader en SyndFeedInput. Hier is body de ontvangen InputStream en contentType is de HTTP Content-Type. XmlReader houdt rekening met de BOM, die metadata en de XML-declaratie. Eerst decoderen met een willekeurige charset kan nuttig bewijs weggooien.

Controleer de HTTP-status vóór het parsen. Anders kan een proxyloginpagina of een weigering als XML-fout verschijnen. Geef ook bodies vrij voor geweigerde antwoorden, zodat een HTTP-fout zijn stream niet open laat.

Twee feedbronnen kunnen verschillend geconfigureerde clients gebruiken zonder JVM-proxyeigenschappen tussen aanroepen te wijzigen. Elke HTTP-client bezit zijn route, terwijl ROME de parseerstap bezit.

Gerelateerde artikelen