ROME Feeds: proksini HTTP müştərisinə qoyun
HTTP müştərisi proksi marşrutlaşdırmasına və status idarəsinə sahib olsun, sonra onun axınını və məzmun tipini ROME-un XML oxuyucusuna ötürün.
ROME feed baytlarını təhlil edir; proksi marşrutu və hesabı HTTP müştərisinə aid olmalıdır. Seçilmiş JDK HttpClient üçün sabit proksi onun builder-ində yerləşir:
HttpClient client = HttpClient.newBuilder()
.proxy(ProxySelector.of(
new InetSocketAddress("proxy.example", 8080)))
.build();
Proksi autentifikasiyası olmadan icazəli ictimai feed sınağı üçün yer tutucu host və portu HTTP proksi siyahısından bir namizədlə əvəz edin. Yerləşdirmənin autentifikasiyasını və sorğu limitlərini həmin müştəriyə əlavə edin. Məqbul cavab aldıqdan sonra axını ROME-a verin:
try (XmlReader reader = new XmlReader(body, contentType)) {
SyndFeed feed = new SyndFeedInput().build(reader);
}
Müasir importlar com.rometools.rome.io.XmlReader və SyndFeedInput-dür. Burada body alınan InputStream, contentType isə HTTP Content-Type-dır. XmlReader BOM-u, həmin metadata-nı və XML bəyannaməsini nəzərə alır. Əvvəlcə ixtiyari charset ilə deşifrə etmək faydalı sübutu itirə bilər.
Təhlildən əvvəl HTTP statusunu yoxlayın. Əks halda proksi giriş səhifəsi və ya imtina XML xətası kimi görünə bilər. Rədd edilmiş cavablar üçün də gövdələri azad edin ki, HTTP xətası axını açıq qoymasın.
İki feed mənbəyi çağırışlar arasında JVM proksi xassələrini dəyişmədən fərqli konfiqurasiyalı müştərilərdən istifadə edə bilər. Hər HTTP müştərisi öz marşrutuna, ROME isə təhlil addımına sahibdir.