调用 rest api 时出现上述错误。我同时使用 retrofit2 和 RxJava。
服务工厂.java
public class ServiceFactory {
public static <T> T createRetrofitService(final Class<T> clazz, final String endpoint){
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(endpoint)
//.addConverterFactory(GsonConverterFactory.create())
.build();
T service = retrofit.create(clazz);
return service;
}
}
电影服务.java
public interface MovieService{
//public final String API_KEY = "<apikey>";
public final String SERVICE_END = "https://api.mymovies.org/3/";
@GET("movie/{movieId}??api_key=xyz")
Observable<Response<Movies>> getMovies(@Field("movieId") int movieId);
}
在 MainActivity 里面
MovieService tmdbService = ServiceFactory.createRetrofitService(MovieService.class, MovieService.SERVICE_END);
Observable<Response<Movies>> responseObservable = tmdbService.getMovies(400);
responseObservable .subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Subscriber<Response<Movies>>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
}
@Override
public void onNext(Response<Movies> moviesResponse) {
}
});
原文由 Hemendra Sethi 发布,翻译遵循 CC BY-SA 4.0 许可协议
请务必将
implementation 'com.squareup.retrofit2:adapter-rxjava2:2.4.0'
或您正在使用的任何版本添加到您的依赖项中,然后使用该转换器配置改造:更新
RxJavaCallAdapterFactory
更名为 RxJava2CallAdapterFactory 。改变了上面的片段。