私はstruts1を使ってプロジェクトをやっています。 私はRSSがROMEを使用していますが、二つの条件のために失敗したフィードをフェッチしています:私は回避するために間違ったRSSのURL ローマの例外を避ける方法
を挿入すると
- 私のファイアウォールが禁じられた場合、RSSのURL(レスポンスコード403)
- そのような条件私は何をすべきですか?
私はstruts1を使ってプロジェクトをやっています。 私はRSSがROMEを使用していますが、二つの条件のために失敗したフィードをフェッチしています:私は回避するために間違ったRSSのURL ローマの例外を避ける方法
を挿入すると
例外をキャッチして処理してください。
okとは、ローマに再度電話してrssフィードを取得することを意味します –
単純に回避できない状況がいくつかあります。
ネットワークの停止を回避することはできません。誤って入力された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文字列は
"; WOW64 RVのMozilla/5.0(Windows NTの10.0:41.0)のGecko/20100101 Firefoxの/ 41.0" です。
ソースコードと実際のエラー? –