http://square.github.io/retrofit/
public interface WeatherApi {
//https://free-api.heweather.com/s6/weather/now?location=深圳&key=cd6a56ab6f4544a4b5d8206064551f85
//实况天气
@GET("/s6/weather/now?")
Call<NowWeatherModel> getNowWeather(@Query("location") String location, @Query("key") String key);
//https://free-api.heweather.com/s6/weather/lifestyle?location=深圳&key=cd6a56ab6f4544a4b5d8206064551f85
//生活指数
@GET("/s6/weather/lifestyle?")
Call<LifeStyleModel> getLifeStyle(@Query("location") String location, @Query("key") String key);
}
private Retrofit retrofit;
private WeatherApi api;
initWeatherApi();
private void initWeatherApi() {
retrofit = new Retrofit.Builder()
.baseUrl(Constant.WEATHER_BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
api = retrofit.create(WeatherApi.class);
//获取实时天气
api.getNowWeather(Constant.WEATHER_CITY, Constant.WEATHER_KEY)
.enqueue(new Callback<NowWeatherModel>() {
@Override
public void onResponse(Call<NowWeatherModel> call, Response<NowWeatherModel> response) {
if (response.isSuccessful()) {
NowWeatherModel model = response.body();
parsingNowWeather(model);
}
}
@Override
public void onFailure(Call<NowWeatherModel> call, Throwable t) {
}
});
//获取生活指数
api.getLifeStyle(Constant.WEATHER_CITY, Constant.WEATHER_KEY)
.enqueue(new Callback<LifeStyleModel>() {
@Override
public void onResponse(Call<LifeStyleModel> call, Response<LifeStyleModel> response) {
if (response.isSuccessful()) {
LifeStyleModel model = response.body();
parsingLifeStyle(model);
}
}
@Override
public void onFailure(Call<LifeStyleModel> call, Throwable t) {
}
});
}
/**
* 解析今天的天气
*
* @param model
*/
private void parsingNowWeather(NowWeatherModel model) {
NowWeatherModel.HeWeather6Bean.BasicBean basicBean = model.getHeWeather6().get(0).getBasic();
NowWeatherModel.HeWeather6Bean.NowBean nowBean = model.getHeWeather6().get(0).getNow();
tv_city.setText(basicBean.getLocation());
tv_cond_txt_tmp.setText(nowBean.getCond_txt() + " | " + nowBean.getTmp() + "°");
tv_wind_dir_sc.setText(nowBean.getWind_dir() + " | " + nowBean.getWind_sc());
}