我正在關注Github Link以使用ReteroFit和RxJava來使用API,但在接口類中將Call從Call更改爲Observer時,我收到一條錯誤消息。無法使用RxJava和Reterofit2創建EndPoint
類型 'java.util.Observable中' 不列入有類型參數
ApiClient:
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;
}
}
ApiInterface
public interface ApiInterface {
@FormUrlEncoded
@POST("user/get_user")
Observable<UserResponse> getUsers(@Field("email") String email, @Field("password") String password);
}
UserResponse:
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'
確保將鼠標懸停在可觀察點上以導入 – Remario
也我建議使用改進日誌攔截器來記錄網絡請求 – Remario