ROME Feeds: beka i-proxy ku-HTTP client
Vumela i-HTTP client ilawule umzila we-proxy nokuphathwa kwesimo, bese udlulisela i-stream yayo nohlobo lokuqukethwe ku-XML reader ye-ROME.
I-ROME ihlaziya ama-byte e-feed; umzila we-proxy ne-akhawunti kufanele kube okwe-HTTP client. Ku-JDK HttpClient ekhethiwe, i-proxy eqinile ibekwa ku-builder yayo:
HttpClient client = HttpClient.newBuilder()
.proxy(ProxySelector.of(
new InetSocketAddress("proxy.example", 8080)))
.build();
Ukuze kuhlolwe i-feed yomphakathi evunyelwe ngaphandle kokuqinisekiswa kwe-proxy, shintsha i-host ne-port yesikhashana ngomuntu ofanelekayo ovela ohlelweni lwe-proxy ye-HTTP. Engeza ukuqinisekiswa kokusatshalaliswa kanye nemikhawulo yezicelo kuleyo client. Ngemva kokuthola impendulo eyamukelekayo, nikeza i-stream ku-ROME:
try (XmlReader reader = new XmlReader(body, contentType)) {
SyndFeed feed = new SyndFeedInput().build(reader);
}
Ama-import esimanje yi-com.rometools.rome.io.XmlReader ne-SyndFeedInput. Lapha i-body yi-InputStream etholakele futhi i-contentType yi-HTTP Content-Type. I-XmlReader icabangela i-BOM, leyo metadata kanye nesimemezelo se-XML. Ukukhoda kuqala nge-charset engahleliwe kungalahla ubufakazi obuwusizo.
Hlola isimo se-HTTP ngaphambi kokuhlaziya. Uma kungenjalo ikhasi lokungena le-proxy noma ukwenqatshwa kungabonakala njengephutha le-XML. Khulula nemizimba yezimpendulo ezenqatshiwe, ukuze iphutha le-HTTP lingashiyi i-stream yalo ivuliwe.
Imithombo emibili ye-feed ingasebenzisa ama-client akhiwe ngendlela ehlukile ngaphandle kokushintsha izakhiwo ze-proxy ze-JVM phakathi kwezingcingo. I-HTTP client ngayinye inepulazi lomzila wayo kuyilapho i-ROME inepulazi lesinyathelo sokuhlaziya.