我在我的项目中使用retrofit 2.0来处理网络请求。在发出任何请求之前,我正在检查用户是否与网络连接,然后才进行请求。
if(Connected()){
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("http://example.com/cgi-bin/")
.addConverterFactory(GsonConverterFactory.create())
.build();
APIService service = retrofit.create(APIService.class);
Call<ArrayList<Brand>> call = service.loadBrand();
call.enqueue(new Callback<ArrayList<Brand>>() {
@Override
public void onResponse(Response<ArrayList<Brand>> response , Retrofit retrofit)
{
brands = response.body();
//brands.size();
//JSONArray jsonArray_GR = response.body();
//arrayCallback.onResponse(jsonArray_GR);
}
@Override
public void onFailure(Throwable t) {
}
});
}
问题是如果在请求仍未完成的情况下网络连接丢失,如何处理该情况。
我应该检查什么以及在哪里?
任何帮助将不胜感激。
答案 0 :(得分:3)
@Override
public void failure(RetrofitError arg0) {
if (arg0.getCause() instanceof UnknownHostException) {
//network loss in retrofit 2.0 in android
}
}