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 — этапам аналізу.

Падобныя артыкулы