Search in sources :

Example 41 with HttpException

use of retrofit2.HttpException in project TeamCityApp by vase4kin.

the class RunBuildInteractorImpl method queueBuild.

/**
 * Queue build
 *
 * @param build           - Build to queue
 * @param loadingListener - listener to receive callbacks on UI
 */
private void queueBuild(Build build, final LoadingListenerWithForbiddenSupport<String> loadingListener) {
    Subscription queueBuildSubscription = mRepository.queueBuild(build).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer<Build>() {

        @Override
        public void onCompleted() {
        }

        @Override
        public void onError(Throwable e) {
            if (e instanceof HttpException) {
                HttpException exception = (HttpException) e;
                if (exception.code() == CODE_FORBIDDEN) {
                    loadingListener.onForbiddenError();
                } else {
                    loadingListener.onFail(e.getMessage());
                }
            } else {
                loadingListener.onFail(e.getMessage());
            }
        }

        @Override
        public void onNext(Build build) {
            loadingListener.onSuccess(build.getHref());
        }
    });
    mSubscription.add(queueBuildSubscription);
}
Also used : Build(com.github.vase4kin.teamcityapp.buildlist.api.Build) HttpException(retrofit2.adapter.rxjava.HttpException) CompositeSubscription(rx.subscriptions.CompositeSubscription) Subscription(rx.Subscription)

Example 42 with HttpException

use of retrofit2.HttpException in project Auto.js by hyb1996.

the class NodeBB method getErrorMessage.

public static String getErrorMessage(Throwable e, Context context, String defaultMsg) {
    if (!(e instanceof HttpException)) {
        return defaultMsg;
    }
    HttpException httpException = (HttpException) e;
    ResponseBody body = httpException.response().errorBody();
    if (body == null)
        return defaultMsg;
    try {
        String errorMessage = getErrorMessage(context, httpException, body.string());
        return errorMessage == null ? defaultMsg : errorMessage;
    } catch (IOException e1) {
        e1.printStackTrace();
        return defaultMsg;
    }
}
Also used : HttpException(com.jakewharton.retrofit2.adapter.rxjava2.HttpException) IOException(java.io.IOException) ResponseBody(okhttp3.ResponseBody)

Example 43 with HttpException

use of retrofit2.HttpException in project 91Pop by DanteAndroid.

the class ApiException method handleException.

public static ApiException handleException(Throwable e) {
    // 使用RxCache之后返回的是包裹的CompositeException,一般包含2个异常,rxcache异常和原本的异常
    Logger.t(TAG).d("开始解析错误------");
    if (e instanceof CompositeException) {
        CompositeException compositeException = (CompositeException) e;
        for (Throwable throwable : compositeException.getExceptions()) {
            if (!(throwable instanceof RxCacheException)) {
                e = throwable;
                Logger.t(TAG).d("其他异常:" + throwable.getMessage());
            } else {
                Logger.t(TAG).d("RxCache 异常");
            }
        }
    }
    ApiException ex;
    if (e instanceof HttpException) {
        HttpException httpException = (HttpException) e;
        ex = new ApiException(httpException, httpException.code());
        ex.message = httpException.getMessage();
        return ex;
    } else if (e instanceof JsonParseException || e instanceof JSONException || e instanceof JsonSerializer || e instanceof NotSerializableException || e instanceof ParseException) {
        ex = new ApiException(e, Error.PARSE_ERROR);
        ex.message = "数据解析错误";
        return ex;
    } else if (e instanceof ClassCastException) {
        ex = new ApiException(e, Error.CAST_ERROR);
        ex.message = "类型转换错误";
        return ex;
    } else if (e instanceof ConnectException) {
        ex = new ApiException(e, Error.NETWORD_ERROR);
        ex.message = "连接失败";
        return ex;
    } else if (e instanceof javax.net.ssl.SSLHandshakeException) {
        ex = new ApiException(e, Error.SSL_ERROR);
        ex.message = "证书验证失败";
        return ex;
    } else if (e instanceof ConnectTimeoutException) {
        ex = new ApiException(e, Error.TIMEOUT_ERROR);
        ex.message = "网络连接超时";
        return ex;
    } else if (e instanceof java.net.SocketTimeoutException) {
        ex = new ApiException(e, Error.TIMEOUT_ERROR);
        ex.message = "网络连接超时";
        return ex;
    } else if (e instanceof UnknownHostException) {
        ex = new ApiException(e, Error.UNKNOWNHOST_ERROR);
        ex.message = "无法解析该域名";
        return ex;
    } else if (e instanceof NullPointerException) {
        ex = new ApiException(e, Error.NULLPOINTER_EXCEPTION);
        ex.message = "NullPointerException";
        return ex;
    } else if (e instanceof VideoException) {
        ex = new ApiException(e, Error.PARSE_VIDEO_URL_ERROR);
        ex.message = e.getMessage();
        return ex;
    } else if (e instanceof FavoriteException) {
        ex = new ApiException(e, Error.FAVORITE_VIDEO_ERROR);
        ex.message = e.getMessage();
        return ex;
    } else if (e instanceof DaoException) {
        ex = new ApiException(e, Error.GREEN_DAO_ERROR);
        ex.message = "数据库错误";
        return ex;
    } else if (e instanceof MessageException) {
        ex = new ApiException(e, Error.COMMON_MESSAGE_ERROR);
        ex.message = e.getMessage();
        return ex;
    } else {
        ex = new ApiException(e, Error.UNKNOWN);
        ex.message = "未知错误:" + e.getMessage();
        return ex;
    }
}
Also used : UnknownHostException(java.net.UnknownHostException) CompositeException(io.reactivex.exceptions.CompositeException) RxCacheException(io.rx_cache2.RxCacheException) JSONException(org.json.JSONException) JsonSerializer(com.google.gson.JsonSerializer) JsonParseException(com.google.gson.JsonParseException) DaoException(org.greenrobot.greendao.DaoException) NotSerializableException(java.io.NotSerializableException) HttpException(retrofit2.HttpException) JsonParseException(com.google.gson.JsonParseException) ParseException(android.net.ParseException) ConnectException(java.net.ConnectException) ConnectTimeoutException(org.apache.http.conn.ConnectTimeoutException)

Example 44 with HttpException

use of retrofit2.HttpException in project dagger-test-example by aschattney.

the class SimpleEspressoTest method errorDialogIsShownWhenRequestFails.

@Test
public void errorDialogIsShownWhenRequestFails() {
    final String message = "some exception message";
    when(weatherApi.getCurrentWeather(FAKE_LONGITUDE, FAKE_LATITUDE)).thenReturn(Observable.error(new HttpException(Response.error(500, ResponseBody.create(MediaType.parse("text/plain"), message)))));
    when(weatherApi.getTomorrowWeather(FAKE_LONGITUDE, FAKE_LATITUDE)).thenReturn(Observable.empty());
    rule.launchActivity(null);
    this.allowPermissionsIfNeeded();
    onView(withText(message)).check(matches(isDisplayed()));
}
Also used : HttpException(retrofit2.HttpException) ArgumentMatchers.anyString(org.mockito.ArgumentMatchers.anyString) Test(org.junit.Test)

Example 45 with HttpException

use of retrofit2.HttpException in project BBS-Android by bdpqchen.

the class SimpleObserver method onError.

@Override
public void onError(Throwable throwable) {
    LogUtil.dd("onError() in SimpleObserver");
    String msg = throwable.getMessage();
    if (TextUtils.isEmpty(msg)) {
        msg = "网络错误";
    }
    if (throwable instanceof SocketTimeoutException) {
        msg = "网络请求超时...请重试";
    } else if (throwable instanceof UnknownHostException) {
        msg = "找不到服务器了..";
    } else if (throwable instanceof ResponseException) {
        msg = throwable.getMessage();
        LogUtil.dd("response exception is cased");
        LogUtil.dd("the msg is", throwable.getMessage());
    } else if (throwable instanceof HttpException) {
        HttpException exception = (HttpException) throwable;
        try {
            String errorBody = exception.response().errorBody().string();
            JSONObject errorJsonObject = new JSONObject(errorBody);
            // int errCode = errorJsonObject.getInt("err");
            msg = errorJsonObject.getString("data");
        } catch (IOException | JSONException e) {
            e.printStackTrace();
        }
    }
    _onError(msg);
}
Also used : SocketTimeoutException(java.net.SocketTimeoutException) UnknownHostException(java.net.UnknownHostException) JSONObject(org.json.JSONObject) HttpException(retrofit2.HttpException)

Aggregations

HttpException (retrofit2.HttpException)32 HttpException (retrofit2.adapter.rxjava.HttpException)18 Test (org.junit.Test)14 JSONException (org.json.JSONException)12 Intent (android.content.Intent)11 JsonParseException (com.google.gson.JsonParseException)11 ConnectException (java.net.ConnectException)10 Bundle (android.os.Bundle)9 ParseException (android.net.ParseException)8 IOException (java.io.IOException)7 SocketTimeoutException (java.net.SocketTimeoutException)7 UnknownHostException (java.net.UnknownHostException)7 Response (retrofit2.Response)7 View (android.view.View)6 Build (com.github.vase4kin.teamcityapp.buildlist.api.Build)6 Disposable (io.reactivex.disposables.Disposable)6 List (java.util.List)6 TextView (android.widget.TextView)5 TextUtils (android.text.TextUtils)4 BuildCancelRequest (com.github.vase4kin.teamcityapp.build_details.api.BuildCancelRequest)4