ROME parsuje bajty kanálu; proxy trasa a účet mají patřit HTTP klientovi. U zvoleného JDK HttpClient patří pevné proxy na jeho builder:

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

Pro povolený test veřejného kanálu bez autentizace proxy nahraďte zástupný hostitel a port kandidátem ze seznamu HTTP proxy. Přidejte do toho klienta autentizaci nasazení a limity požadavků. Když získá přijatelnou odpověď, předejte stream ROME:

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

Moderní importy jsou com.rometools.rome.io.XmlReader a SyndFeedInput. Zde body je přijatý InputStream a contentType je HTTP Content-Type. XmlReader zohledňuje BOM, tato metadata i deklaraci XML. Dekódování nejprve libovolným charsetem může zahodit užitečné důkazy.

Před parsováním zkontrolujte stav HTTP. Jinak se přihlašovací stránka proxy nebo odmítnutí mohou jevit jako chyba XML. Uvolněte těla i u odmítnutých odpovědí, aby chyba HTTP nenechala stream otevřený.

Dva zdroje kanálu mohou používat různě nakonfigurované klienty, aniž by mezi voláními měnily vlastnosti proxy JVM. Každý HTTP klient vlastní svou trasu, zatímco ROME vlastní krok parsování.

Související články