ROME ວິເຄາະ byte ຂອງ feed; ເສັ້ນທາງພຣັອກຊີ ແລະ ບັນຊີຄວນເປັນຂອງ HTTP client. ສຳລັບ JDK HttpClient ທີ່ເລືອກ, ພຣັອກຊີຄົງທີ່ຢູ່ໃນ builder ຂອງມັນ:

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

ສຳລັບການທົດສອບ feed ສາທາລະນະທີ່ອະນຸຍາດໂດຍບໍ່ມີການພິສູດຕົວຕົນພຣັອກຊີ, ໃຫ້ປ່ຽນ host ແລະ port ຕົວຢ່າງດ້ວຍຜູ້ສະໝັກຈາກ ລາຍຊື່ພຣັອກຊີ HTTP. ເພີ່ມການພິສູດຕົວຕົນຂອງການຕິດຕັ້ງ ແລະ ຂີດຈຳກັດຄຳຮ້ອງ ໃສ່ client ນັ້ນ. ຫຼັງຈາກໄດ້ຮັບການຕອບສະໜອງທີ່ຍອມຮັບໄດ້, ສົ່ງ stream ໃຫ້ 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, metadata ນັ້ນ ແລະ ການປະກາດ XML. ການ decode ດ້ວຍ charset ໃດໜຶ່ງກ່ອນອາດຖິ້ມຫຼັກຖານທີ່ເປັນປະໂຫຍດ.

ກວດສະຖານະ HTTP ກ່ອນວິເຄາະ. ບໍ່ດັ່ງນັ້ນໜ້າເຂົ້າສູ່ລະບົບພຣັອກຊີ ຫຼື ການປະຕິເສດອາດປາກົດເປັນຂໍ້ຜິດພາດ XML. ປ່ອຍ body ສຳລັບການຕອບສະໜອງທີ່ຖືກປະຕິເສດດ້ວຍ, ເພື່ອບໍ່ໃຫ້ຂໍ້ຜິດພາດ HTTP ປະ stream ໄວ້ເປີດ.

ແຫຼ່ງ feed ສອງແຫ່ງສາມາດໃຊ້ client ທີ່ຕັ້ງຄ່າແຕກຕ່າງກັນໂດຍບໍ່ປ່ຽນຄຸນສົມບັດພຣັອກຊີຂອງ JVM ລະຫວ່າງການເອີ້ນ. ແຕ່ລະ HTTP client ເປັນເຈົ້າຂອງເສັ້ນທາງຂອງຕົນ ໃນຂະນະທີ່ ROME ເປັນເຈົ້າຂອງຂັ້ນຕອນວິເຄາະ.

ບົດຄວາມທີ່ກ່ຽວຂ້ອງ