2017-12-05 4 views
0

こんにちは私はretrofitとrxjavaを使って簡単なリクエストを作成し、レスポンスを返しますが、リクエスト自体を作成しているか、レスポンスを返すようですか?シングルとRxjavaは改造要求を実行しませんか?

これは私の改造コードです:ここで

public class Controller 

public Single<List<ListItems>> getItems() { 
     return apiCall().getItems(); 
    } 

    private ServiceCallsApiCall() { 
     OkHttpClient okHttpClient = new OkHttpClient().newBuilder().addInterceptor(interceptor).build(); 
     Retrofit retrofit = new Retrofit.Builder() 
       .baseUrl(BASE_URL) 
       .client(okHttpClient) 
       .addConverterFactory(GsonConverterFactory.create()) 
       .addCallAdapterFactory(RxJava2CallAdapterFactory.create()).build(); 

     ServiceCallsApiCall serviceCalls= retrofit.create(ServiceCallsApiCall.class); 
     return foodHygieneServiceCalls; 
    } 

私ServiceCallsApiCallクラス

@GET("Authorities/basic") 
    Single<List<ListItems>> getItems(); 

この

をサブスクライブして観察する私のコード
public void getItems() { 
     new Controller().getItems() 
       .observeOn(AndroidSchedulers.mainThread()) 
       .subscribeOn(Schedulers.io()) 
       .subscribe(new SingleObserver<List<ListItems>>() { 
        @Override 
        public void onSubscribe(Disposable d) { 
         Log.d("","onSubscribe"); 
        } 

        @Override 
        public void onSuccess(List<ListItems> items) { 
         viewPresenterCallBacks.updateView(items); 
        } 

        @Override 
        public void onError(Throwable e) { 
         Log.d("","onError" + e.getMessage()); 
        } 
       }); 
    } 

のなしの私のRxjavaの一部であり、 onSuccessまたはonErrorが呼び出される

+0

apiCall()とは何ですか?それのためのポストコード – elmorabea

答えて

0

私は最近同様の問題を抱えていました。この問題はJSONの逆シリアル化からListItem POJOへのリビルトフィットまたはrxJavaからの問題ではありません。私は、問題の要点は、JSON非直列化ライブラリがJsonをPOJOに変換できないことです。

ジャクソンを使用している場合は、@JsonIgnoreProperties(ignoreUnknown = true)をListItemクラスに追加することができます。

私の場合はGSONを使用していました。私はすべてのJSONプロパティに興味がなかったので、私はちょうどSingle<Movies> getRecentMovies();からSingle<ResponseBody> getRecentMovies();に自分の初期改造メソッドのシグネチャを変更し、私の応答で必要なフィールドを抽出しました。

関連する問題