ROME Feeds: प्रॉक्सी को HTTP क्लाइंट पर रखें
HTTP क्लाइंट को प्रॉक्सी रूटिंग और स्थिति प्रबंधन सौंपें, फिर उसकी स्ट्रीम और सामग्री प्रकार ROME के XML रीडर को दें।
ROME फ़ीड बाइट्स का विश्लेषण करता है; प्रॉक्सी मार्ग और खाता HTTP क्लाइंट का होना चाहिए। चुने गए JDK HttpClient के लिए, एक स्थिर प्रॉक्सी उसके builder पर रखा जाता है:
HttpClient client = HttpClient.newBuilder()
.proxy(ProxySelector.of(
new InetSocketAddress("proxy.example", 8080)))
.build();
प्रॉक्सी प्रमाणीकरण के बिना अनुमत सार्वजनिक फ़ीड परीक्षण के लिए, प्लेसहोल्डर होस्ट और पोर्ट को HTTP प्रॉक्सी सूची से किसी उम्मीदवार से बदलें। उस क्लाइंट में परिनियोजन का प्रमाणीकरण और अनुरोध सीमाएँ जोड़ें। स्वीकार्य प्रतिक्रिया मिलने के बाद, स्ट्रीम ROME को दें:
try (XmlReader reader = new XmlReader(body, contentType)) {
SyndFeed feed = new SyndFeedInput().build(reader);
}
आधुनिक imports com.rometools.rome.io.XmlReader और SyndFeedInput हैं। यहाँ body प्राप्त InputStream है और contentType HTTP Content-Type है। XmlReader BOM, उस मेटाडेटा और XML घोषणा पर विचार करता है। पहले मनमाने charset से डिकोड करने पर उपयोगी साक्ष्य खो सकते हैं।
विश्लेषण से पहले HTTP स्थिति जाँचें। अन्यथा प्रॉक्सी लॉगिन पृष्ठ या इनकार XML त्रुटि के रूप में दिख सकता है। अस्वीकृत प्रतिक्रियाओं के लिए भी बॉडी मुक्त करें, ताकि HTTP त्रुटि अपनी स्ट्रीम खुली न छोड़े।
दो फ़ीड स्रोत कॉलों के बीच JVM प्रॉक्सी गुण बदले बिना भिन्न रूप से कॉन्फ़िगर किए गए क्लाइंट उपयोग कर सकते हैं। प्रत्येक HTTP क्लाइंट अपने मार्ग का स्वामी है, जबकि ROME विश्लेषण चरण का स्वामी है।