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.

Izihloko ezihlobene