ROME feed байттарын талдайды; прокси маршруты мен есептік жазба HTTP клиентіне тиесілі болуы керек. Таңдалған JDK HttpClient үшін тұрақты прокси оның builder-іне қойылады:

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

Прокси аутентификациясынсыз рұқсат етілген жалпыға ортақ feed сынағы үшін толтырғыш хост пен портты HTTP прокси тізімінен үміткермен ауыстырыңыз. Сол клиентке орналастыру аутентификациясын және сұрау шектеулерін қосыңыз. Қолайлы жауап алғаннан кейін ағынды ROME-ға беріңіз:

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

Заманауи импорттар — com.rometools.rome.io.XmlReader және SyndFeedInput. Мұнда body — алынған InputStream, ал contentType — HTTP Content-Type. XmlReader BOM-ды, сол метадеректерді және XML декларациясын ескереді. Алдымен кездейсоқ charset-пен декодтау пайдалы дәлелдерді жоғалтуы мүмкін.

Талдау алдында HTTP күйін тексеріңіз. Әйтпесе проксиге кіру беті немесе бас тарту XML қатесі ретінде көрінуі мүмкін. Қабылданбаған жауаптардың денелерін де босатыңыз, HTTP қатесі ағынын ашық қалдырмас үшін.

Екі feed көзі шақырулар арасында JVM прокси қасиеттерін өзгертпей-ақ әртүрлі конфигурацияланған клиенттерді пайдалана алады. Әр HTTP клиенті өз маршрутына ие, ал ROME талдау қадамына ие.

Қатысты мақалалар