Я использую ROME для опроса и объединения RSS-каналов, которые обновляются каждые двадцать минут.Чтобы обойти возможное отсутствие User-Agent, я искусственно добавил тот, который я восстановил после установки Chrome.Соответствующий бит кода выглядит следующим образом:
URLConnection connection = new URL(feed.getFeedUrl()).openConnection();
connection.setRequestProperty("User-Agent",
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36");
SyndFeedInput input = new SyndFeedInput();
XmlReader reader = new XmlReader(connection.getInputStream(),
"text/html; charset=UTF-8", true);
SyndFeed syndFeed = input.build(reader);
(feed.getFeedUrl()
возвращает URL для канала в виде строки).Это работает для большинства фидов, которые я опрашиваю, но не для канала, расположенного на https://eurovoix.com/feed/
, который возвращает HTTP-код ошибки 403 («Запрещено») при ответе.Фид работает нормально при вызове из браузера.Что может быть причиной этого?
Редактировать: Попытка использовать решение из этой цепочки - добавление CookieHandler.setDefault(new CookieManager(null, CookiePolicy.ACCEPT_ALL));
- не решает проблему, к сожалению.