ROME analizuoja srauto baitus; tarpinio serverio maršrutas ir paskyra turėtų priklausyti HTTP klientui. Pasirinktam JDK HttpClient fiksuotas tarpinis serveris priskiriamas jo builder'iui:

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

Leidžiamam viešo srauto bandymui be tarpinio serverio autentifikavimo pakeiskite vietos rezervavimo hostą ir portą kandidatu iš HTTP tarpinių serverių sąrašo. Pridėkite diegimo autentifikavimą ir užklausų limitus tam klientui. Gavęs priimtiną atsakymą, perduokite srautą ROME:

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

Šiuolaikiniai importai yra com.rometools.rome.io.XmlReader ir SyndFeedInput. Čia body yra gautas InputStream, o contentType yra HTTP Content-Type. XmlReader atsižvelgia į BOM, tuos metaduomenis ir XML deklaraciją. Pirmiausia dekoduojant savavališka charset galima prarasti naudingus įrodymus.

Prieš analizuodami patikrinkite HTTP būseną. Priešingu atveju tarpinio serverio prisijungimo puslapis arba atmetimas gali pasirodyti kaip XML klaida. Atlaisvinkite korpusus ir atmestų atsakymų atveju, kad HTTP klaida nepaliktų srauto atidaryto.

Du srauto šaltiniai gali naudoti skirtingai sukonfigūruotus klientus, nekeisdami JVM tarpinio serverio savybių tarp iškvietimų. Kiekvienas HTTP klientas valdo savo maršrutą, o ROME valdo analizės žingsnį.

Susiję straipsniai