bigeyechou/Rxjava2Retrofit2NetFrame

多个请求

Opened this issue · 7 comments

假如一个界面有多个请求怎么办

您好,一个页面是可以请求多个接口的,写法跟例子里请求天气的一样,copy就可以。
建议把所有的请求接口都写在HttpApi里(您想分功能模块也可以,比如用户模块新建UserApi、消息模块MessageApi等等),然后在订阅方法的类里写您要请求的方法;最后在activity或fragment等页面里面去实现。
如果您想请求多个接口,实现多个接口数据共同更新UI的话可以了解一下zip操作符,具体示例ZipOperatorActivity这个类 里面。
说的不明白的话可以+Q:673292497,给你截代码说明

哪个是订阅方法的类?比如在一个个人中心界面中请求查询app版本信息和用户信息,两个不同的类呢?

在netsubscribe包下的那个类

哪个是订阅方法的类?比如在一个个人中心界面中请求查询app版本信息和用户信息,两个不同的类呢?

您可以看看我简书上的那篇说明文章,两个接口、是个接口跟一个接口用法都是一样的,您请求一个接口是怎么请求的,在请求第二个接口的时候,按照第一个接口的流程走一遍就行了,无非就是 @post("xxx")、参数@Body之类的不同。

RetrofitFactory中的changeBaseUrl(baseUrl)如何使用

RetrofitFactory.getInstance().changeBaseUrl(xxxxx);切换,通常就是测试、开发 、正式环境

Observable observable = RetrofitFactory.getInstance().changeBaseUrl(URLConstant.TXAPI_URL).getHttpApi()中.getHttpApi()报错“cannot resolve method 'getHttpApi()''’
这样,您先用你以前的网络请求。然后再理解一遍java基础,这个我说的没有头了,您可以把代码给您同事或者同学看一下,或者加我qq我给你解释一下。
RetrofitFactory.getInstance()这个是获取RetrofitFactory,changeBaseUrl(URLConstant.TXAPI_URL)是retrofitFactory里的一个方法,变换URL,这个方法返回的事void,不是RetrofitFactory,所以您不能在它后面 .getHttpApi();跟您只能:
RetrofitFactory.getInstance().changeBaseUrl(URLConstant.TXAPI_URL);
RetrofitFactory.getInstance().getHttpApi()
这样写。
RetrofitFactory.getInstance().changeBaseUrl(URLConstant.TXAPI_URL);最好写在一个控制切换环境的Activity的测试类里。