如何在android中通过改造处理206代码?

高蒂尔·德林克比尔

我是改装新手,我想处理代码 206。

所以基本上我调用我的 rest api 并获得一个 Observable 但我不知道如何处理结果以及如何在需要时再次调用 api。

例如 :

Observable<CompanyListRest> vAllCompanyList = api.findAllCompanys1WithParams(vParamsMap);

将调用我的 api(参数是开始索引和要获取的元素数)但如何编码重复操作。

我尝试使用 onNext 添加订阅者,但它不起作用

抱歉,如果不清楚,谢谢

更新和解决方案:

我跟随阿齐姆·萨利莫夫的 znswer

Observable<Response<CompanyListRest>> vAllCompanyListResponse = api.findAllCompanys1WithParams();
        vAllCompanyListResponse.subscribe(new  Observer<Response<CompanyListRest>>() {
            @Override
            public void onSubscribe(@NonNull Disposable d) {
            }

            @Override
            public void onNext(@NonNull Response <CompanyListRest> pCompanyListRest) {
                if(pCompanyListRest.code() == 206){
                    vAllCompanyList.addAll(pCompanyListRest.body().getCompany());
                    
                    // change parameters of search
    
                    vAllCompanyListResponse.retry().subscribe(this::onNext);
                } else if( pCompanyListRest.code() == 200){
                    return;
                }

            }

这工作很好!

阿齐姆·萨利莫夫

您可以将您的CompanyListRest回复包裹在里面,Response如下所示:

Observable<Response<CompanyListRest>>

Response 来自改造2:

import retrofit2.Response;

所以现在您可以在onNext方法中检查 206 的响应代码

@Override 
public void onNext(Resposne<CompanyListRest> response) {
   int statusCode = response.code();
   if(statusCode == 206){
      //do something...
   }
}

要再次调用此函数,您只需再次调用此函数即可)。我建议您拥有一个可以控制所有请求的存储库。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章