2017-12-16 5 views
0

Ich lade einige Daten vom Server mithilfe der Retrofit-Bibliothek. Während einige Daten vom Server geladen werden, entstehen Probleme. Irgendwann werden die Daten geladen. Einige Zeit wird nicht geladen und zeigt die folgende Ausnahme im Protokoll an. Ich verstehe nicht, was ich jetzt tun soll.Liste der Aufträge vom Server kann nicht geladen werden

Ausnahme:

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

ich Fehler in dieser Java-Klasse auf Linie bin immer "Rückkehr Observable.fromCallable (neue Callable()" und on line "Rückkehr call.execute();"

.
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

Test Web-Service mit Postbote –

+1

Mögliche Duplikat [ "BEGIN \ _object erwartet, aber war STRING in Zeile 1, Spalte 1"] (https://stackoverflow.com/questions/28418662/expected-begin-object-but-was -string-at-line-1-column-1) –

+0

Bitte geben Sie Ihre URL, HTTP-Antwort Körper, Fehler oder irgendetwas ... – nhoxbypass

Antwort

3

Sie erwarten ein Json-Objekt von Ihrem Server, aber Sie erhalten eine Nicht-Json-Antwort.

Sie können Ihre API entweder mit Postman testen oder einen HTTP Logger auf Ihre Anfragen setzen, um zu sehen, was Sie tatsächlich bekommen.

Ich kann nicht verstehen, warum Sie hier ein benutzerdefiniertes Observable verwenden. Wenn Sie Retrofit2 zusammen mit RxJava2 verwenden, sollten Sie es ordnungsgemäß verwenden, indem Sie RxJava2CallAdapterFactory verwenden, um Observables direkt aus Retrofit selbst zu empfangen.

Wie ich schon sagte das Problem ist mit Ihrer Antwort vom Server. Sie müssen irgendwie sehen, was Sie tatsächlich vom Server bekommen.

+0

Jetzt aktualisiert. Kannst du jetzt einen Blick auf den Code werfen ??? –

+0

@ZIAANSARI hat die Antwort aktualisiert. –

Verwandte Themen