从RestApi,Retrofit和Rxjava接连获取大型json?

问题描述

我想加载一个json,一个接一个由于其较大的JsonArray 。在此之前,我使用了Retrofit调用及其oKey,但是输出时间过长。感谢您提供有关如何以这种方式实施的帮助。

ApiInterface.java

  public interface ApiInterface {

    @POST("/token/login")
    Call<User> login(@Body Login login);

    @Streaming
    @GET("/api/schools/")
    Observable<ResponseBody> getAllSchools(@Header("Authorization") String authToken);

}

Client.java

public class Client {
public static final String BASE_URL = "site.net";
private static Retrofit retrofit;

public static Retrofit getClient(){

    if (retrofit == null){
        retrofit = new Retrofit.Builder()
                .baseUrl(BASE_URL)
                .addConverterFactory(GsonConverterFactory.create())
                .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
                .build();
    }
    return retrofit;



}

}

ApiInterface apiInterface = Client.getClient().create(ApiInterface.class);
        String tok = "Token " + token;
        apiInterface.getAllSchools(tok)
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Observer<ResponseBody>() {
                    @Override
                    public void onSubscribe(Disposable disposable) {

                    }

                    @Override
                    public void onNext(ResponseBody responseBody) {
                    //fetch json one after one.
                        Toast.makeText(getContext(),responseBody.toString(),Toast.LENGTH_SHORT).show();
                    }

                    @Override
                    public void onError(Throwable throwable) {
                       
                    }

                    @Override
                    public void onComplete() {
                        Toast.makeText(getContext(),"finish--",Toast.LENGTH_SHORT).show();

                    }
                });

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)