Как избежать римского исключения - PullRequest
1 голос
/ 11 февраля 2012

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

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

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

Ответы [ 3 ]

0 голосов
/ 11 февраля 2012

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

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

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

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

0 голосов
/ 02 апреля 2016

Около 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";

0 голосов
/ 11 февраля 2012

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

...