ROME Feeds: проксийг HTTP клиент дээр байрлуул
HTTP клиент прокси чиглүүлэлт ба төлөвийн боловсруулалтыг хариуцаж, дараа нь түүний урсгал ба агуулгын төрлийг ROME-ын XML уншигчид дамжуулна.
ROME feed-ийн байтуудыг задлан шинжилдэг; прокси чиглэл ба бүртгэл HTTP клиентэд хамаарах ёстой. Сонгосон JDK HttpClient-ийн хувьд тогтмол прокси түүний builder дээр байрлана:
HttpClient client = HttpClient.newBuilder()
.proxy(ProxySelector.of(
new InetSocketAddress("proxy.example", 8080)))
.build();
Прокси баталгаажуулалтгүй зөвшөөрөгдсөн нийтийн feed туршилтын хувьд орлуулагч хост ба портыг 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 Content-Type юм. XmlReader нь BOM, тэр мета өгөгдөл болон XML тунхаглалыг харгалзан үздэг. Эхлээд дурын charset-ээр тайлбарлах нь ашигтай нотолгоог хаяж болно.
Задлан шинжлэхийн өмнө HTTP төлөвийг шалга. Эс бөгөөс прокси нэвтрэх хуудас эсвэл татгалзал XML алдаа мэт харагдаж болно. Татгалзсан хариуны биеийг ч чөлөөл, HTTP алдаа урсгалаа нээлттэй үлдээхгүйн тулд.
Хоёр feed эх сурвалж дуудлагын хооронд JVM прокси шинж чанарыг өөрчлөхгүйгээр өөр өөрөөр тохируулсан клиентүүдийг ашиглаж болно. HTTP клиент бүр өөрийн чиглэлийг эзэмшиж, ROME задлан шинжилгээний алхмыг эзэмшинэ.