ROME tolkar flödets byte; proxy-rutten och kontot bör ägas av HTTP-klienten. För en vald JDK HttpClient hör en fast proxy till på dess builder:

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

För ett tillåtet test av offentligt flöde utan proxy-autentisering, ersätt platshållarvärden och port med en kandidat från HTTP-proxylistan. Lägg till distributionens autentisering och begärandegränser på den klienten. När den har fått ett acceptabelt svar, lämna strömmen till ROME:

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

De moderna importerna är com.rometools.rome.io.XmlReader och SyndFeedInput. Här är body den mottagna InputStream och contentType är HTTP Content-Type. XmlReader tar hänsyn till BOM, dessa metadata och XML-deklarationen. Att först avkoda med en godtycklig charset kan kasta bort användbara bevis.

Kontrollera HTTP-statusen före tolkning. Annars kan en proxy-inloggningssida eller en avvisning visas som ett XML-fel. Frigör även bodies för avvisade svar, så att ett HTTP-fel inte lämnar strömmen öppen.

Två flödeskällor kan använda olika konfigurerade klienter utan att ändra JVM:ens proxyegenskaper mellan anrop. Varje HTTP-klient äger sin rutt medan ROME äger tolkningssteget.

Relaterade artiklar