ROME menghuraikan bait feed; laluan proksi dan akaun sepatutnya dimiliki klien HTTP. Untuk JDK HttpClient yang dipilih, proksi tetap diletakkan pada builder-nya:

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

Untuk ujian feed awam yang dibenarkan tanpa pengesahan proksi, gantikan hos dan port pemegang tempat dengan calon daripada senarai proksi HTTP. Tambahkan pengesahan deployment dan had permintaan pada klien itu. Selepas ia memperoleh respons yang boleh diterima, serahkan strim kepada ROME:

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

Import moden ialah com.rometools.rome.io.XmlReader dan SyndFeedInput. Di sini body ialah InputStream yang diterima dan contentType ialah HTTP Content-Type. XmlReader mengambil kira BOM, metadata itu dan pengisytiharan XML. Menyahkod dahulu dengan charset sewenang-wenangnya boleh membuang bukti berguna.

Periksa status HTTP sebelum menghuraikan. Jika tidak, halaman log masuk proksi atau penolakan boleh muncul sebagai ralat XML. Lepaskan badan untuk respons yang ditolak juga, supaya ralat HTTP tidak membiarkan strimnya terbuka.

Dua sumber feed boleh menggunakan klien yang dikonfigurasikan secara berbeza tanpa mengubah sifat proksi JVM antara panggilan. Setiap klien HTTP memiliki laluannya manakala ROME memiliki langkah penghuraian.

Artikel berkaitan