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 विश्लेषणाच्या टप्प्याचा मालक आहे.