2017-12-16 3 views
0

Retrofit Libraryを使用してサーバーからデータをロードしています。サーバーからデータをロード中にトラブルが発生しています。データがロードされることがあります。ログに次の例外を表示して表示していない時間があります。私は今何をすべきか理解していない。サーバーからの注文リストをロードできません

例外:;

を "戻りcall.execute()" 私はライン上でこのJavaクラス のエラーを取得しています

java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 2418 path $.data[2].run 

とラインの "Observable.fromCallableを(新しい呼び出し可能()を返します"。

public class APIExecutor 

{

public static Observable<Response> call(final Call call) 
{ 

    BackgroundThread bgThread = new BackgroundThread(); 
    bgThread.start(); 

    Handler bgHandler = new Handler(bgThread.getLooper()); 
    Observable<Response> observable = Observable.defer(new Func0<Observable<Response>>() 
    { 
     @Override 
     public Observable<Response> call() 
     { 
      return Observable.fromCallable(new Callable<Response>() { 
       @Override 
       public Response call() throws Exception 
       { 


        return call.execute(); 
       } 
      }); 
     } 
    }); 

    return observable 
      .subscribeOn(HandlerScheduler.from(bgHandler)) 
      .observeOn(AndroidSchedulers.mainThread()); 
} 

}

+0

郵便配達員付きテストウェブサービス –

+1

["BEGIN \ _OBJECTは期待されていますが、1行目の列1でSTRINGでした]"(https://stackoverflow.com/questions/28418662/expected-begin-object-but-was) -string-at-line-1-column-1) –

+0

URL、http応答本文、エラーなどを入力してください。 – nhoxbypass

答えて

3

サーバーからJsonオブジェクトが届きますが、Json以外の応答を受け取っています。

郵便配達員のいずれかでAPIをテストするか、HTTP Loggerをあなたのリクエストに入れて実際に何が得られているかを確認することができます。

ここでカスタムObservableを使用している理由を理解できません。 Retrofit2とRxJava2を併用している場合は、RxJava2CallAdapterFactoryを使用してObservablesをRetrofitから直接受信することで、適切な方法で使用する必要があります。

私が既に言ったように、問題はサーバーからのあなたの応答にあります。あなたは何とかあなたが実際にサーバから得ているものを見なければなりません。

+0

今更新されました。あなたはコードを今見てみましょうか??? –

+0

@ZIAANSARIが答えを更新しました。 –

関連する問題