如何在 Retrofit RxJava Android 中获取 https 状态码?

Vic*_*hit 4 android rx-android

之前我总是使用改造来加载数据。处理或获取响应的状态代码非常容易。

但是现在我想将 Retrofit 与 RxJava 一起使用,但我不知道如何在 onNext 方法中处理或获取响应的 https 状态代码。

progressDialog.show();

Observable<ResponseData> observable = apiService.getData();
compositeDisposable.add(observable
        .subscribeOn(Schedulers.io())
        .observeOn(AndroidSchedulers.mainThread())
        .subscribeWith(new DisposableObserver<ResponseData>() {
            @Override
            public void onNext(ResponseData responseData) {
                Log.e("pppp", "onNext: " + responseData.toString());
            }

            @Override
            public void onError(Throwable e) {
                progressDialog.dismiss();
                Log.e("pppp", "onError: " + e.getMessage());
            }

            @Override
            public void onComplete() {
                progressDialog.dismiss();
                Log.e("pppp", "onComplete");
            }
        })
);
Run Code Online (Sandbox Code Playgroud)

请大家帮我解决这个问题。
谢谢!

Dhi*_*rma 9

您应该将您的 ResponseData 包装在 Response 中

Observable<Response<ResponseData>> observable = apiService.getData(); 
Run Code Online (Sandbox Code Playgroud)

然后里面onNext

@Override 
public void onNext(Resposne<ResponseData> response) {
   int statusCode = response.code();
}
Run Code Online (Sandbox Code Playgroud)

和错误

@Override 
public void onError(Throwable e) {
    ((HttpException) e).code();
}
Run Code Online (Sandbox Code Playgroud)