Как избежать римского исключения

Я делаю проект с использованием Struts1. Я получаю RSS-каналы, используя ROME, но это не помогает по двум причинам:

  1. Когда мой брандмауэр запрещен rss url (код ответа 403)
  2. Когда я вставляю неправильный rss URL

Чтобы избежать таких условий, что мне делать?

3 ответа

Просто ловите исключения и обрабатывайте их.

Есть некоторые ситуации, которые вы просто не можете избежать.

Вы не можете избежать перебоев в работе сети, вы не можете избежать неправильно набранных URL.

Однако вы можете проверить, доступна ли сеть и правильно ли введен URL-адрес.

Вы должны перехватить исключения и предоставить пользователю сообщения об ошибках.

Около 403
Некоторые каналы, похоже, имеют некоторую защиту (для DDOS). Поэтому, основываясь на пользовательском агенте (в вашем случае "Java"), они запрещают вам читать канал. Таким образом, вы должны установить свой собственный пользовательский агент (например, пользовательский агент firefox), прежде чем открывать соединение. как это

 System.setProperty("http.agent", USER_AGENT);
 URLConnection openConnection = url.openConnection();
 is = url.openConnection().getInputStream();
 if ("gzip".equals(openConnection.getContentEncoding())) {
     is = new GZIPInputStream(is);
 }
 InputSource source = new InputSource(is);
 input = new SyndFeedInput();
 syndicationFeed = input.build(source);
 XmlReader reader = new XmlReader(url);
 syndicationFeed = input.build(reader);

Моя текущая строка USER_AGENT
"Mozilla/5.0 (Windows NT 10.0; WOW64; rv:41.0) Gecko/20100101 Firefox/41.0";

Другие вопросы по тегам