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 విశ్లేషణ దశను కలిగి ఉంటుంది.