ROME analizuje bajty kanału; trasa proxy i konto powinny należeć do klienta HTTP. Dla wybranego JDK HttpClient stałe proxy trafia do jego buildera:

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

Do dozwolonego testu publicznego kanału bez uwierzytelniania proxy zastąp zastępczy host i port kandydatem z listy proxy HTTP. Dodaj do tego klienta uwierzytelnianie wdrożenia i limity żądań. Gdy otrzyma akceptowalną odpowiedź, przekaż strumień do ROME:

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

Nowoczesne importy to com.rometools.rome.io.XmlReader i SyndFeedInput. Tutaj body to odebrany InputStream, a contentType to HTTP Content-Type. XmlReader uwzględnia BOM, te metadane i deklarację XML. Dekodowanie najpierw dowolnym charsetem może odrzucić przydatne dowody.

Sprawdź status HTTP przed analizą. W przeciwnym razie strona logowania proxy lub odmowa mogą wyglądać jak błąd XML. Zwolnij też treści odrzuconych odpowiedzi, aby błąd HTTP nie pozostawił strumienia otwartego.

Dwa źródła kanału mogą używać różnie skonfigurowanych klientów bez zmiany właściwości proxy JVM między wywołaniami. Każdy klient HTTP posiada swoją trasę, a ROME posiada etap analizy.

Powiązane artykuły