ROME analizează octeții fluxului; ruta proxy și contul ar trebui să aparțină clientului HTTP. Pentru un JDK HttpClient ales, un proxy fix se pune pe builder-ul acestuia:

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

Pentru un test permis al unui flux public fără autentificare proxy, înlocuiți gazda și portul substituent cu un candidat din lista de proxy-uri HTTP. Adăugați autentificarea implementării și limitele cererilor la acel client. După ce obține un răspuns acceptabil, predați fluxul către ROME:

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

Importurile moderne sunt com.rometools.rome.io.XmlReader și SyndFeedInput. Aici body este InputStream-ul primit, iar contentType este HTTP Content-Type. XmlReader ia în considerare BOM-ul, acele metadate și declarația XML. Decodarea mai întâi cu un charset arbitrar poate elimina dovezi utile.

Inspectați starea HTTP înainte de analiză. Altfel, o pagină de autentificare proxy sau un refuz pot apărea ca eroare XML. Eliberați și corpurile răspunsurilor respinse, ca o eroare HTTP să nu lase fluxul deschis.

Două surse de flux pot folosi clienți configurați diferit fără a modifica proprietățile proxy ale JVM între apeluri. Fiecare client HTTP își deține ruta, în timp ce ROME deține pasul de analiză.

Articole similare