我正在尝试使用改造库制作一个简单的天气应用程序。我希望城市名称是动态的。这就是我到目前为止所做的:
完整网址:
http://api.openweathermap.org/data/2.5/forecast/daily?q=dhaka&cnt=7&appid=1111
基本网址:
http://api.openweathermap.org/
主要活动
LinkedHashMap<String,String>data=new LinkedHashMap<>();
data.put("q",targetCity);
data.put("cnt",Integer.toString(7));
data.put("appid",getString(R.string.api_key));
Call<WeatherResponse>weatherResponseCall=weatherServiceApi.getAllWeatherReport(data);
并在我的api界面中:
@GET("data/2.5/forecast/daily?")
Call<WeatherResponse>getAllWeatherReport(@QueryMap LinkedHashMap<String,String>data);
我既没有收到任何错误,也没有收到任何回复数据。 请帮忙。
答案 0 :(得分:0)
您没有执行通话功能......
WeatherResponse response = call.execute().body();
如果我是你,我会尝试使用 okhttp 中的ResponseBody
来获取返回的数据。然后使用response.string()
,您可以看到从请求中检索到的内容。
或者,要记录每个请求/响应的正文数据,您应该在构建Retrofit对象时添加此拦截器:
OkHttpClient client = httpClient.addInterceptor(interceptor.setLevel(HttpLoggingInterceptor.Level.BODY))
.build();
Retrofit retrofit = builder.client(client).build();
return retrofit.create(serviceClass);