ROME ги парсира бајтите на фидот; прокси рутата и сметката треба да му припаѓаат на HTTP клиентот. За избран JDK HttpClient, фиксно прокси се става на неговиот builder:

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 Content-Type. XmlReader ги зема предвид BOM, тие метаподатоци и XML декларацијата. Декодирањето прво со произволен charset може да отфрли корисни докази.

Проверете го HTTP статусот пред парсирање. Инаку страницата за најава на проксито или одбивањето може да изгледаат како XML грешка. Ослободете ги телата и за одбиените одговори, за да не остави HTTP грешката текот отворен.

Два извори на фид можат да користат различно конфигурирани клиенти без менување на прокси својствата на JVM помеѓу повиците. Секој HTTP клиент ја поседува својата рута, додека ROME го поседува чекорот на парсирање.

Поврзани статии