ROME parser feed-bytene; proxy-ruten og kontoen bør eies av HTTP-klienten. For en valgt JDK HttpClient hører en fast proxy til på builderen:

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

For en tillatt test av offentlig feed uten proxy-autentisering, erstatt plassholderverten og -porten med en kandidat fra HTTP-proxylisten. Legg til distribusjonens autentisering og forespørselsgrensene på den klienten. Når den har fått et akseptabelt svar, gi strømmen til ROME:

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

De moderne importene er com.rometools.rome.io.XmlReader og SyndFeedInput. Her er body den mottatte InputStream, og contentType er HTTP Content-Type. XmlReader tar hensyn til BOM, disse metadataene og XML-deklarasjonen. Å dekode først med et vilkårlig charset kan kaste bort nyttige bevis.

Undersøk HTTP-statusen før parsing. Ellers kan en proxy-innloggingsside eller en avvisning fremstå som en XML-feil. Frigjør også brødtekster for avviste svar, slik at en HTTP-feil ikke lar strømmen stå åpen.

To feed-kilder kan bruke ulikt konfigurerte klienter uten å endre JVM-proxyegenskaper mellom kall. Hver HTTP-klient eier sin rute, mens ROME eier parseringstrinnet.

Relaterte artikler