2016-05-31 7 views
1

次のコードで公開天気マップapiからJSONデータを取得しようとしていますが、常に失敗します。私は何の例外が発生するのか知りませんし、私は常にキャッチで定義されているようにnull応答を取得します。天気予報地図apiがアンドロイドアプリでデータを返すのはなぜですか?

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; 
    } 

答えて

1

私はあなたの質問スレッドにコメントする特権を持っていないので、ここでコメントしています。 catchブロックのスタックトレースを印刷すると、問題の解決方法を見つけることができます。あなたのURLを作成する方法を知って、あなたのString.format

URL url = new URL(String.format(OPEN_WEATHER_MAP_API)); 

で街を欠けているように、それは見えます、しないと

0

すべきではない私には、次を追加する必要がありましたインターネットの許可とともに許可されます。

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
0

あなたのOPEN_WEATHER_MAP_APIに割り当てられたURLは何ですか?

urlは

関連する問題