OpenWeather API以意外结果响应

时间:2016-02-16 21:02:48

标签: android android-fragments location

出于某种原因,Api以不同的坐标设置回应我发送的坐标。我调试了应用程序,调用api的结果与JSON文件中返回的结果不同。例如 那些发送:

  1. http://api.openweathermap.org/data/2.5/weather?q=lat=51.89689166666667&lon=-8.486315
  2. 返回

    1. {" COORD" {" LON":24.76" LAT":60.15}"天气": ................. 这是我目前使用的代码:

      private static final String OPEN_WEATHER_MAP_API =             " http://api.openweathermap.org/data/2.5/weather?q=&#34 ;;

         URL url = new URL(String.format(OPEN_WEATHER_MAP_API + "lat="+lat+"&"+"lon="+lon));
              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());
      

1 个答案:

答案 0 :(得分:1)

特别是对Android或此服务一无所知,但我只是抬起他们的API,因为我认为你的网址看起来很可疑,并发现了这个:

api.openweathermap.org/data/2.5/weather?lat=35&lon=139

请注意,您的示例和变量?q=

中没有private static final String OPEN_WEATHER_MAP_API = "http://api.openweathermap.org/data/2.5/weather?q=";之类的内容

当我删除q=(并从他们的网站示例中添加演示API密钥)时,我们会得到一个工作网址,它返回指定纬度/经度的数据:
http://api.openweathermap.org/data/2.5/weather?lat=51.89689166666667&lon=-8.486315&appid=44db6a862fba0b067b1930da0d769e98