首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于openweathermap api的小时天气预报

基于openweathermap api的小时天气预报
EN

Stack Overflow用户
提问于 2017-03-24 19:28:29
回答 1查看 2.2K关注 0票数 2

我试图从openweathermap中获取每小时的预测数据,使用这个url http://api.openweathermap.org/data/2.5/forecast?q=London&APPID,使用改造库,但是这个url不能工作。

Api接口类

代码语言:javascript
复制
public interface ApiInterface {
@GET("forecast?")
Call<HourlyWeather> getHourlyWeather(@Query("q") String city,
                                     @Query("units") String units,
                                     @Query("APPID") String appId);

}

api客户端类

代码语言:javascript
复制
public class ApiClient {
public static final String BASE_URL="http://api.openweathermap.org/data/2.5/";
public static Retrofit retrofit =null;

public static Retrofit getRetrofit(){
    if (retrofit == null){

        retrofit = new Retrofit.Builder()
                .baseUrl(BASE_URL)
                .addConverterFactory(GsonConverterFactory.create())
                .build();
    }
    return retrofit;

}

}

改造反应

代码语言:javascript
复制
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();
        }
    });
}

Logcat错误:

代码语言:javascript
复制
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

提前谢谢..。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-27 13:21:03

您正在期待一个int,但是main.pressure会收到一个double。

代码语言:javascript
复制
NumberFormatException: Expected an int but was 1035.16
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43007669

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档