يحلّل ROME بايتات التغذية؛ وينبغي أن يتولى عميل HTTP مسار الوكيل وحسابه. بالنسبة إلى JDK HttpClient مختار، يوضع الوكيل الثابت على مُنشئه:

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

الاستيرادات الحديثة هي com.rometools.rome.io.XmlReader وSyndFeedInput. هنا body هو InputStream المستلَم وcontentType هو نوع محتوى HTTP. يراعي XmlReader علامة BOM وتلك البيانات الوصفية وإعلان XML. قد يؤدي فك الترميز بمجموعة محارف عشوائية أولاً إلى إهدار دليل مفيد.

افحص حالة HTTP قبل التحليل. وإلا فقد تظهر صفحة تسجيل دخول الوكيل أو رفض الوصول كخطأ XML. أفرج عن الأجسام للاستجابات المرفوضة أيضًا، حتى لا يترك خطأ HTTP تدفقه مفتوحًا.

يمكن لمصدرَي تغذية استخدام عميلين مهيأين بشكل مختلف دون تغيير خصائص وكيل JVM بين الاستدعاءات. كل عميل HTTP يملك مساره بينما يملك ROME خطوة التحليل.

مقالات ذات صلة