Android 使用OpenWeatherMapAPI进行每小时天气预报
我正在尝试从openweathermap api获取每小时的预测数据,使用改型库使用此url,但此url不起作用 Api接口类Android 使用OpenWeatherMapAPI进行每小时天气预报,android,android-studio,retrofit,Android,Android Studio,Retrofit,我正在尝试从openweathermap api获取每小时的预测数据,使用改型库使用此url,但此url不起作用 Api接口类 public interface ApiInterface { @GET("forecast?") Call<HourlyWeather> getHourlyWeather(@Query("q") String city, @Query("units") String units,
public interface ApiInterface {
@GET("forecast?")
Call<HourlyWeather> getHourlyWeather(@Query("q") String city,
@Query("units") String units,
@Query("APPID") String appId);
}
改装响应
ApiInterface apiInterface = ApiClient.getRetrofit().create(ApiInterface.class);
Call<HourlyWeather> call = apiInterface.getHourlyWeather("London","metric",getResources().getString(R.string.api_key));
call.enqueue(new Callback<HourlyWeather>() {
@Override
public void onResponse(Call<HourlyWeather> call, Response<HourlyWeather> response) {
Log.d("Hourly","Status code "+response.code());
list = response.body().getList();
hourlyTxt.setText(getString(R.string.hourly_forecast));
}
@Override
public void onFailure(Call<HourlyWeather> call, Throwable t) {
t.printStackTrace();
}
});
}
提前感谢…您希望得到一个int,但main.pressure收到了一个double
NumberFormatException: Expected an int but was 1035.16
什么不起作用?不显示每小时数据,也不显示日志中的响应代码请显示日志输出无响应代码的数据@NinoHandlerstatus code 200未在此特定url中显示我
com.google.gson.JsonSyntaxException: java.lang.NumberFormatException: Expected an int but was 1035.16 at line 1 column 138 path $.list[0].main.pressure
03-25 18:41:17.789 16913-16913/com.example.prem.weatherapp W/System.err: at com.google.gson.internal.bind.TypeAdapters$7.read(TypeAdapters.java:245)
03-25 18:41:17.789 16913-16913/com.example.prem.weatherapp W/System.err: at com.google.gson.internal.bind.TypeAdapters$7.read(TypeAdapters.java:235)
03-25 18:41:17.789 16913-16913/com.example.prem.weatherapp W/System.err: at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:129)
03-25 18:41:17.789 16913-16913/com.example.prem.weatherapp W/System.err: at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:220)
03-25 18:41:17.789 16913-16913/com.example.prem.weatherapp W/System.err: at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:129)
03-25 18:41:17.789 16913-16913/com.example.prem.weatherapp W/System.err: at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:220)
03-25 18:41:17.789 16913-16913/com.example.prem.weatherapp W/System.err: at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.read(TypeAdapterRuntimeTypeWrapper.java:41)
03-25 18:41:17.789 16913-16913/com.example.prem.weatherapp W/System.err: at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.read(CollectionTypeAdapterFactory.java:82)
03-25 18:41:17.789 16913-16913/com.example.prem.weatherapp W/System.err: at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.read(CollectionTypeAdapterFactory.java:61)
03-25 18:41:17.789 16913-16913/com.example.prem.weatherapp W/System.err: at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:129)
03-25 18:41:17.789 16913-16913/com.example.prem.weatherapp W/System.err: at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:220)
03-25 18:41:17.789 16913-16913/com.example.prem.weatherapp W/System.err: at retrofit2.converter.gson.GsonResponseBodyConverter.convert(GsonResponseBodyConverter.java:37)
03-25 18:41:17.789 16913-16913/com.example.prem.weatherapp W/System.err: at retrofit2.converter.gson.GsonResponseBodyConverter.convert(GsonResponseBodyConverter.java:25)
03-25 18:41:17.790 16913-16913/com.example.prem.weatherapp W/System.err: at retrofit2.ServiceMethod.toResponse(ServiceMethod.java:118)
03-25 18:41:17.790 16913-16913/com.example.prem.weatherapp W/System.err: at retrofit2.OkHttpCall.parseResponse(OkHttpCall.java:212)
03-25 18:41:17.790 16913-16913/com.example.prem.weatherapp W/System.err: at retrofit2.OkHttpCall$1.onResponse(OkHttpCall.java:106)
03-25 18:41:17.790 16913-16913/com.example.prem.weatherapp W/System.err: at okhttp3.RealCall$AsyncCall.execute(RealCall.java:135)
03-25 18:41:17.790 16913-16913/com.example.prem.weatherapp W/System.err: at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32)
03-25 18:41:17.790 16913-16913/com.example.prem.weatherapp W/System.err: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
03-25 18:41:17.790 16913-16913/com.example.prem.weatherapp W/System.err: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
03-25 18:41:17.790 16913-16913/com.example.prem.weatherapp W/System.err: at java.lang.Thread.run(Thread.java:818)
03-25 18:41:17.790 16913-16913/com.example.prem.weatherapp W/System.err: Caused by: java.lang.NumberFormatException: Expected an int but was 1035.16 at line 1 column 138 path $.list[0].main.pressure
03-25 18:41:17.790 16913-16913/com.example.prem.weatherapp W/System.err: at com.google.gson.stream.JsonReader.nextInt(JsonReader.java:1196)
03-25 18:41:17.790 16913-16913/com.example.prem.weatherapp W/System.err: at com.google.gson.internal.bind.TypeAdapters$7.read(TypeAdapters.java:243)
03-25 18:41:17.790 16913-16913/com.example.prem.weatherapp W/System.err: ... 20 more
NumberFormatException: Expected an int but was 1035.16