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);
}

Ժամանակակից import-ներն են com.rometools.rome.io.XmlReader-ը և SyndFeedInput-ը։ Այստեղ body-ը ստացված InputStream-ն է, իսկ contentType-ը՝ HTTP Content-Type-ը։ XmlReader-ը հաշվի է առնում BOM-ը, այդ մետատվյալները և XML հռչակագիրը։ Նախապես կամայական charset-ով վերծանելը կարող է կորցնել օգտակար ապացույցներ։

Վերլուծելուց առաջ ստուգեք HTTP կարգավիճակը։ Հակառակ դեպքում վստահված սերվերի մուտքի էջը կամ մերժումը կարող են երևալ որպես XML սխալ։ Ազատեք մարմինները նաև մերժված պատասխանների համար, որպեսզի HTTP սխալը բաց չթողնի իր հոսքը։

Երկու feed աղբյուրներ կարող են օգտագործել տարբեր կերպ կարգավորված հաճախորդներ՝ չփոփոխելով JVM-ի վստահված սերվերի հատկությունները կանչերի միջև։ Յուրաքանչյուր HTTP հաճախորդ տիրապետում է իր երթուղուն, իսկ ROME-ը՝ վերլուծության քայլին։

Առնչվող հոդվածներ