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 притежава стъпката на анализиране.

Подобни статии