ROME mengurai byte feed; rute proksi dan akun sebaiknya dimiliki klien HTTP. Untuk JDK HttpClient yang dipilih, proksi tetap berada pada builder-nya:

HttpClient client = HttpClient.newBuilder()
    .proxy(ProxySelector.of(
        new InetSocketAddress("proxy.example", 8080)))
    .build();

Untuk uji feed publik yang diizinkan tanpa autentikasi proksi, ganti host dan port placeholder dengan kandidat dari daftar proksi HTTP. Tambahkan autentikasi penerapan dan batas permintaan ke klien tersebut. Setelah memperoleh respons yang dapat diterima, serahkan aliran ke ROME:

try (XmlReader reader = new XmlReader(body, contentType)) {
    SyndFeed feed = new SyndFeedInput().build(reader);
}

Import modern adalah com.rometools.rome.io.XmlReader dan SyndFeedInput. Di sini body adalah InputStream yang diterima dan contentType adalah HTTP Content-Type. XmlReader mempertimbangkan BOM, metadata itu, dan deklarasi XML. Mendekode lebih dulu dengan charset sembarang dapat membuang bukti yang berguna.

Periksa status HTTP sebelum mengurai. Jika tidak, halaman masuk proksi atau penolakan dapat tampak sebagai kesalahan XML. Lepaskan body untuk respons yang ditolak juga, agar kesalahan HTTP tidak meninggalkan alirannya terbuka.

Dua sumber feed dapat memakai klien yang dikonfigurasi berbeda tanpa mengubah properti proksi JVM antar pemanggilan. Setiap klien HTTP memiliki rutenya sementara ROME memiliki langkah penguraian.

Artikel terkait