0

URL から xml を読み取って画面に表示するアプリケーションを実行していますが、回答を読みたいときに FileNotFoundException が返されます。

これはコードです:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    ListView rss = (ListView) findViewById(R.id.list);
    try {

       Authenticator.setDefault(new Authenticator() {
            @Override
            protected PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication("acceso!a!backend", "nu3v0!1nf0b43!2013".toCharArray());
            }
        });


        URL rssUrl = new URL("http://ec2-54-224-94-185.compute-1.amazonaws.com/adjuntos/162/rss/home_mobile.xmlx");

        SAXParserFactory factory = SAXParserFactory.newInstance();
        SAXParser saxParser = factory.newSAXParser();
        XMLReader xmlReader = saxParser.getXMLReader();
        RSSHandler rssHandler = new RSSHandler();
        xmlReader.setContentHandler(rssHandler);

////////ここで FileNotFoundException を取得しています

        InputSource inputSource = new InputSource(rssUrl.openStream());
        xmlReader.parse(inputSource);

        NoticiasAdapter na = new NoticiasAdapter(this ,rssHandler.getChannel());
        rss.setAdapter(na);

    } catch (IOException e) {
        e.printStackTrace();
    } catch (SAXException e) {
        e.printStackTrace();
    } catch (ParserConfigurationException e) {
        e.printStackTrace();
    }
}
4

3 に答える 3

0

その場合、URL が存在しない可能性があります。:)

ブラウザでその URL にアクセスして、その URL が存在することを確認しましたか?

また、 I/O の実行を開始すると がURLConnectionスローIOExceptionされます。これは、物理接続を確立しようとするときだからです。システムに先に接続させたい場合 (たとえば、URL が存在することを確認するため)、URLConnectionconnect()メソッドを使用して先に接続させることができます。(必要な接続構成 -0setting ヘッダーなどを事前に行っていることを確認してください!) I/O を実行して接続を確立するまで待機しても問題はないため、接続を確立するために呼び出す必要connect()はありません。必要に応じて、より早く接続することもできます。

于 2013-07-15T15:02:21.610 に答える
0

その URL を開こうとしたところ、404 エラーが見つかりませんでした。

于 2013-07-15T15:03:19.587 に答える