ROME parsar feed-byta; proxy-ruta og kontoen bør eigast av HTTP-klienten. For ein vald JDK HttpClient høyrer ein fast proxy til på builderen:

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

For ein tillaten test av offentleg feed utan proxy-autentisering, byt ut plasshaldarverten og -porten med ein kandidat frå HTTP-proxylista. Legg til autentiseringa til distribusjonen og førespurnadsgrensene på den klienten. Når han har fått eit akseptabelt svar, gje straumen til ROME:

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

Dei moderne importa er com.rometools.rome.io.XmlReader og SyndFeedInput. Her er body den mottekne InputStream, og contentType er HTTP Content-Type. XmlReader tek omsyn til BOM, desse metadataa og XML-deklarasjonen. Å dekode først med eit vilkårleg charset kan kaste bort nyttige prov.

Undersøk HTTP-statusen før parsing. Elles kan ei proxy-innloggingsside eller ei avvising framstå som ein XML-feil. Frigjer også brødtekstar for avviste svar, slik at ein HTTP-feil ikkje lèt straumen stå open.

To feed-kjelder kan bruke ulikt konfigurerte klientar utan å endre JVM-proxyegenskapar mellom kall. Kvar HTTP-klient eig si rute, medan ROME eig parseringstrinnet.

Relaterte artiklar