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);
}

import สมัยใหม่คือ com.rometools.rome.io.XmlReader และ SyndFeedInput ที่นี่ body คือ InputStream ที่ได้รับ และ contentType คือ HTTP Content-Type XmlReader พิจารณา BOM เมทาดาทาเหล่านั้น และการประกาศ XML การถอดรหัสด้วย charset ใดก็ได้ก่อนอาจทิ้งหลักฐานที่เป็นประโยชน์

ตรวจสอบสถานะ HTTP ก่อนแยกวิเคราะห์ มิฉะนั้นหน้าล็อกอินพร็อกซีหรือการปฏิเสธอาจปรากฏเป็นข้อผิดพลาด XML ปล่อย body สำหรับการตอบสนองที่ถูกปฏิเสธด้วย เพื่อไม่ให้ข้อผิดพลาด HTTP ทิ้งสตรีมไว้เปิด

แหล่งฟีดสองแหล่งสามารถใช้ไคลเอนต์ที่กำหนดค่าแตกต่างกันได้โดยไม่ต้องเปลี่ยนพร็อพเพอร์ตี้พร็อกซีของ JVM ระหว่างการเรียกใช้ ไคลเอนต์ HTTP แต่ละตัวเป็นเจ้าของเส้นทางของตน ขณะที่ ROME เป็นเจ้าของขั้นตอนการแยกวิเคราะห์

บทความที่เกี่ยวข้อง