API fetch被调用两次的问题通常是由于Retrofit库中的重试机制引起的。为了解决这个问题,可以通过以下两种方法来处理:
Observable observable = retrofit.create(ApiInterface.class).getMovies();
observable.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Subscriber() {
@Override
public void onCompleted() { }
@Override
public void onError(Throwable e) { }
@Override
public void onNext(Movie movie) { }
});
OkHttpClient okHttpClient = new OkHttpClient.Builder()
.retryOnConnectionFailure(false)
.build();
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(BASE_URL)
.client(okHttpClient)
.addConverterFactory(GsonConverterFactory.create())
.build();
上述代码中,将OkHttpClient的retryOnConnectionFailure设置为false即可关闭Retrofit的重试机制。
上一篇:APIFetch返回空值
下一篇:APIfetchinReact