Как обработать ошибку соединения с сервером и интернет-соединения и показать разные сообщения для каждого в залпе Android? - PullRequest
0 голосов
/ 30 мая 2019

я хочу показать разные сообщения об ошибках соединения, что я имею в виду, когда есть ошибка соединения с сервером, чтобы показать пользователю, что есть проблема с сервером, и если нет интернета, сообщите пользователю, что нет соединения с интернетом, как я могу добитьсячто с залпом?

Я уже пробую следующий код:

public void onErrorResponse(VolleyError error) {
    if (error instanceof TimeoutError) {
        Snackbar.make(contextView,getString(R.string.no_internen_connection_msg),Snackbar.LENGTH_LONG).show();
    } else if (error instanceof NetworkError) {
        Snackbar.make(contextView,getString(R.string.no_internen_connection_msg),Snackbar.LENGTH_LONG).show();
    } else if (error instanceof NoConnectionError) {
        Snackbar.make(contextView,getString(R.string.server_con_err_msg),Snackbar.LENGTH_LONG).show();
    } else {      
        if (parseNetworkError(error).getMessage() != null) {
            //do something
        }else {
            //do something
        }
    }
}

Но условие NoConnectionError показывает это предупреждение "условие error instanceof NoConnectionError всегда ложно"

и он всегда показывает ошибку интернет-соединения, даже если есть интернет-соединение, но проблема в соединении с сервером error.

1 Ответ

0 голосов
/ 30 мая 2019

«Вот решение»

            @Override
            public void onErrorResponse(VolleyError error) {
                String json = null;
                String json_js = null;


                NetworkResponse response = error.networkResponse;
                if(response != null && response.data != null){
                    int codee=response.statusCode;
                    switch(response.statusCode){
                        case 400:
                            json = new String(response.data);
                            json = trimMessage(json, "message");
                            if(json != null) displayMessage(json);
//                            json_js=json;
//                            JSONObject jj=json;
                            callback.onSuccess(json_js,json);
                            break;
                        case 401:
                            callback.onSuccess(json_js,"401");
                            break;
                        case 405:

                            callback.onSuccess(json_js,"Sending Wrong Request");
                            break;
                        default:
                            callback.onSuccess(json_js,error.toString());

                    }
                    //Additional cases
                }
                else {
                    String message;
                    if (error instanceof NetworkError) {
                        message = "Cannot connect to Internet...Please check your 
                        connection!";
                        callback.onSuccess(json_js, message);

                    } else if (error instanceof ServerError) {
                        message = "The server could not be found. Please try again 
                             after some time!!";
                        callback.onSuccess(json_js, message);

                    } else if (error instanceof AuthFailureError) {
                        message = "Cannot connect to Internet...Please check your 
                          connection!";
                        callback.onSuccess(json_js, message);

                    } else if (error instanceof ParseError) {
                        message = "Parsing error! Please try again after some 
                         time!!";
                        callback.onSuccess(json_js, message);

                    } else if (error instanceof NoConnectionError) {
                        message = "Cannot connect to Internet...Please check your 
                         connection!";
                        callback.onSuccess(json_js, message);

                    } else if (error instanceof TimeoutError) {
                        message = "Connection TimeOut! Please check your internet 
                        connection.";
                        callback.onSuccess(json_js, message);

                    }

«Надеюсь, вы получите ответ»

...