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 പാഴ്സിംഗ് ഘട്ടത്തിന്റെ ഉടമയാണ്.

അനുബന്ധ ലേഖനങ്ങൾ