ROME သည် feed bytes များကို ခွဲခြမ်းစိတ်ဖြာသည်။ ပရောက်စီ လမ်းကြောင်းနှင့် အကောင့်သည် HTTP client ၏ ပိုင်ဆိုင်မှု ဖြစ်သင့်သည်။ ရွေးချယ်ထားသော JDK HttpClient အတွက်၊ ပုံသေ ပရောက်စီကို ၎င်း၏ builder ပေါ်တွင် ထားသည်။

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

ပရောက်စီ စစ်မှန်ကြောင်း အတည်ပြုခြင်း မပါဘဲ ခွင့်ပြုထားသော အများပြည်သူ feed စမ်းသပ်မှုအတွက်၊ placeholder host နှင့် port ကို HTTP ပရောက်စီ စာရင်းမှ ကိုယ်စားလှယ်တစ်ခုဖြင့် အစားထိုးပါ။ ထို client တွင် ဖြန့်ကျက်မှု၏ စစ်မှန်ကြောင်း အတည်ပြုချက်နှင့် တောင်းဆိုမှု ကန့်သတ်ချက်များကို ထည့်ပါ။ လက်ခံနိုင်သော တုံ့ပြန်မှု ရရှိပြီးနောက် stream ကို 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၊ ထို metadata နှင့် XML ကြေညာချက်ကို ထည့်သွင်းစဉ်းစားသည်။ မည်သည့် charset ဖြင့်မဆို အရင် decode လုပ်ခြင်းသည် အသုံးဝင်သော အထောက်အထားများကို လွှင့်ပစ်နိုင်သည်။

မခွဲခြမ်းမီ HTTP အခြေအနေကို စစ်ဆေးပါ။ သို့မဟုတ်ပါက ပရောက်စီ လော့ဂ်အင် စာမျက်နှာ သို့မဟုတ် ငြင်းပယ်မှုသည် XML အမှားအဖြစ် ပေါ်လာနိုင်သည်။ ငြင်းပယ်ခံရသော တုံ့ပြန်မှုများအတွက်လည်း body များကို လွှတ်ပေးပါ၊ HTTP အမှားက ၎င်း၏ stream ကို ဖွင့်မထားစေရန်။

feed ရင်းမြစ် နှစ်ခုသည် ခေါ်ဆိုမှုများအကြား JVM ပရောက်စီ ဂုဏ်သတ္တိများကို မပြောင်းဘဲ မတူညီစွာ ပြင်ဆင်ထားသော client များကို အသုံးပြုနိုင်သည်။ HTTP client တစ်ခုစီသည် ၎င်း၏ လမ်းကြောင်းကို ပိုင်ဆိုင်ပြီး ROME သည် ခွဲခြမ်းစိတ်ဖြာမှု အဆင့်ကို ပိုင်ဆိုင်သည်။

ဆက်စပ်ဆောင်းပါးများ