2017-04-14 29 views
0

我正在關注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' 

回答

0

您使用了錯誤的可觀察類:

類型 'Ĵava.util .Observable'

代替使用rx java Obserable

2

變化import java.util.Observable;在代碼import io.reactivex.Observable;

1

像以前的答案說,錯了,進口解決這個問題,刪除導入,然後alt + enter導入新的。

記錄攔截器,用於未來的記錄。

HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(); 
interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); 
OkHttpClient client = new OkHttpClient.Builder().addInterceptor(interceptor).build(); 
+0

確保將鼠標懸停在可觀察點上以導入 – Remario

+0

也我建議使用改進日誌攔截器來記錄網絡請求 – Remario