如何在android中的retrofit 2.0中处理网络丢失

时间:2016-01-20 09:58:35

标签: android

我在我的项目中使用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) {

            }
        });
    }

问题是如果在请求仍未完成的情况下网络连接丢失,如何处理该情况。

我应该检查什么以及在哪里?

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:3)

@Override
    public void failure(RetrofitError arg0) {

        if (arg0.getCause() instanceof UnknownHostException) {
            //network loss in retrofit 2.0 in android
        }
    }