Android 无法使用RxJava和retrofit2创建终结点
我下面使用ReteroFit和RxJava来使用API,但在我的接口类中将类型从Call更改为Observer时,我收到了一条错误消息 类型“java.util.Observable”没有类型参数 ApiClient:Android 无法使用RxJava和retrofit2创建终结点,android,retrofit2,rx-java2,Android,Retrofit2,Rx Java2,我下面使用ReteroFit和RxJava来使用API,但在我的接口类中将类型从Call更改为Observer时,我收到了一条错误消息 类型“java.util.Observable”没有类型参数 ApiClient: public class ApiClient { public static final String BASE_URL = "*********"; private static Retrofit retrofit = null; public stat
public class ApiClient {
public static final String BASE_URL = "*********";
private static Retrofit retrofit = null;
public static Retrofit getClient() {
final OkHttpClient okHttpClient = new OkHttpClient.Builder()
.readTimeout(60, TimeUnit.SECONDS)
.connectTimeout(60, TimeUnit.SECONDS)
.build();
if (retrofit==null) {
Gson gson = new GsonBuilder()
.setLenient()
.create();
retrofit = new Retrofit.Builder()
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.baseUrl(BASE_URL)
.client(okHttpClient)
.addConverterFactory(GsonConverterFactory.create(gson))
.build();
}
return retrofit;
}
}
public class UserResponse {
private List<User> result;
private String status_message;
private int status_code;
public int getStatus_code() {
return status_code;
}
public void setStatus_code(int status_code) {
this.status_code = status_code;
}
public List<User> getResult() {
return result;
}
public void setResult(List<User> result) {
this.result = result;
}
public String getStatus_message() {
return status_message;
}
public void setStatus_message(String status_message) {
this.status_message = status_message;
}
}
compile 'io.reactivex.rxjava2:rxjava:2.0.1'
compile 'io.reactivex.rxjava2:rxandroid:2.0.1'
compile 'com.jakewharton.retrofit:retrofit2-rxjava2-adapter:1.0.0'
ApiInterface
public interface ApiInterface {
@FormUrlEncoded
@POST("user/get_user")
Observable<UserResponse> getUsers(@Field("email") String email, @Field("password") String password);
}
您使用了错误的可观察类: 输入'java.util.Observable'
而不是使用rx java ObserableChange
import java.util.Observable代码>在您的代码中导入io.reactivex.Observable
就像前面的答案所说的,错误,导入以纠正此问题,删除导入,然后alt+enter
导入新的导入
日志拦截器,用于将来的日志记录
HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
OkHttpClient client = new OkHttpClient.Builder().addInterceptor(interceptor).build();
请确保将鼠标悬停在可观察到的importal上,因此我建议使用改进的日志拦截器来记录网络请求