1

次のコードを使用して、開いている天気図 API から JSON データをフェッチしようとしていますが、常に失敗します。どのような例外が発生するのかわかりません。キャッチで定義されているように、常に null 応答が返されます。

 try {
        //URL url = new URL(String.format(OPEN_WEATHER_MAP_API, city));
        URL url = new URL(String.format(OPEN_WEATHER_MAP_API));
        HttpURLConnection connection =
                (HttpURLConnection)url.openConnection();

        connection.addRequestProperty("x-api-key",
                context.getString(R.string.open_weather_maps_app_id));

        BufferedReader reader = new BufferedReader(
                new InputStreamReader(connection.getInputStream()));

        StringBuffer json = new StringBuffer(1024);
        String tmp="";
        while((tmp=reader.readLine())!=null)
            json.append(tmp).append("\n");
        reader.close();

        JSONObject data = new JSONObject(json.toString());

        // This value will be 404 if the request was not
        // successful
        if(data.getInt("cod") != 200){
            return null;
        }

        return data;
    }catch(Exception e){
        return null;
    }
4

4 に答える 4

1

インターネット許可とともに次の許可を追加する必要がありました。

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
于 2016-06-02T09:50:55.417 に答える
0

OPEN_WEATHER_MAP_API に割り当てた URL ..?

URL はhttp://api.openweathermap.org/data/2.5/weather?q=city&units=metricである必要があります

これを試してください...

于 2016-09-24T10:20:18.543 に答える