retrofit2每次请求都需要new OkHttpClient.Builder();和new Retrofit.Builder();吗?我尝试static Retrofit retrofit(整个应用一个)并实现new CookieJar(),现在遇到问题:fragmentA + ViewPager + fragmentB,每一个fragmentB都需要发送请求,现状是偶尔能得到数据,偶尔得不到,得到都需要等待很长的时间,没有得到的来回切换ViewPager又有可能得到,请求方法是放在fragmentB的onResume()中的。retrofit2结合了RxJava和rxlifecycle。如果每次创建Retrofit,有需要解决cookie共享的问题,是吗?另一个问题:retrofit.create(clazz),在使用时每次都需要实例化Api接口吗?比如Api接口中有5个请求方法,在每次请求的时候是单独create还是能在比如Activity中用一个成员变量接收创建一次?

解决方案 »

  1.   

    数据请求的问题:
            Fragment的请求 你放在 onCreateView 中就可以了啊,放在 onResume 中请求会慢,fragment马上就显示了,你才去请求数据,肯定会慢,不知道你说的 慢是多长时间,看看调试一下看下是服务器原因还是其他原因。Cookie  这个不知道,没做过,retrofit.create(clazz)  你每做一次 实例化 就会得到一个 ApiService 的实例化对象
    当然是创建一个静态变量 就第一次初始化的时候 创建一次,后面都用静态变量来进行请求,就不用再初始化了