0

サンプルのAndroidアプリで天気APIのURLを解析したいのですが、URLの解析中に例外が発生します。

tryブロックの最後のステートメントにコメントすると:

xr.parse(new InputSource(url.openStream()));

その後、私のプログラムは正常に実行されます。URLを解析するコードを修正してください。

try {
    URL url;        
    String queryString ="http://free.worldweatheronline.com/feed/weather.ashx?q=34.01,71.54&format=xml&num_of_days=5&key=ccad66928f081759132201";

    url = new URL(queryString.replace(" ", "%20"));

    SAXParserFactory spf = SAXParserFactory.newInstance();
    SAXParser sp = spf.newSAXParser();

    XMLReader xr = sp.getXMLReader();

    WeatherHandler myWeatherHandler = new WeatherHandler();
    xr.setContentHandler(myWeatherHandler);

    xr.parse(new InputSource(url.openStream()));

    Log.d(TAG, "it's all right");
} catch (Exception e) {
    System.out.println(e);
    Log.d(TAG, "it's Wrong");
}

これは、例外が発生したときのログ猫のスクリーンショットです。 ここに画像の説明を入力してください

4

1 に答える 1

2

次の行はよろしいですか:

new InputSource(url.openStream());

から

xr.parse(new InputSource(url.openStream()));

何かを返していますか?インターネットに接続する必要がある場合は、許可をマニフェストに追加することを忘れないでください。また、解析を試みる前に、実際にその URL から何かを取得できるかどうかもテストする必要があります。少なくとも、それはあなたのログと例外からの私の解釈です。

于 2013-01-24T18:42:24.423 に答える