Не могу загрузить данные с веб-сервиса с первого раза - PullRequest
0 голосов
/ 03 ноября 2018

Получив токен доступа на Facebook, я использую его для входа на свой собственный веб-сервер. Однако в первый раз в файле журнала появляется предупреждение, и я не могу загрузить данные с моего сервера, но когда я открываю приложение со второго раза, оно загружается нормально.

Ниже приведен журнал предупреждений:

W / System.err: com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: ожидается BEGIN_OBJECT, но было STRING в строке 1 столбец 1 путь $ W / System.err: в com.google.gson.internal.bind.ReflectiveTypeAdapterFactory $ Adapter.read (ReflectiveTypeAdapterFactory.java:224) W / System.err: at retrofit2.converter.gson.GsonResponseBodyConverter.convert (GsonResponseBodyConverter.java:39) W / System.err: at retrofit2.converter.gson.GsonResponseBodyConverter.convert (GsonResponseBodyConverter.java:27) W / System.err: at retrofit2.ServiceMethod.toResponse (ServiceMethod.java:122) W / System.err: at retrofit2.OkHttpCall.parseResponse (OkHttpCall.java:217) W / System.err: в retrofit2.OkHttpCall.execute (OkHttpCall.java:180) W / System.err:
в retrofit2.adapter.rxjava2.CallExecuteObservable.subscribeActual (CallExecuteObservable.java:42) W / System.err: at io.reactivex.Observable.subscribe (Observable.java:12084) W / System.err: в retrofit2.adapter.rxjava2.BodyObservable.subscribeActual (BodyObservable.java:34) W / System.err: at io.reactivex.Observable.subscribe (Observable.java:12084) W / System.err: в io.reactivex.internal.operators.observable.ObservableSingleSingle.subscribeActual (ObservableSingleSingle.java:35) W / System.err: at io.reactivex.Single.subscribe (Single.java:3433) W / System.err: at io.reactivex.internal.operators.single.SingleDoOnSuccess.subscribeActual (SingleDoOnSuccess.java:35) W / System.err: at io.reactivex.Single.subscribe (Single.java:3433) W / System.err: at io.reactivex.internal.operators.single.SingleSubscribeOn $ SubscribeOnObserver.run (SingleSubscribeOn.java:89) W / System.err: at io.reactivex.Scheduler $ DisposeTask.run (Scheduler.java:579) W / System.err: at io.reactivex.internal.schedulers.ScheduledRunnable.run (ScheduledRunnable.java:66) W / System.err: at io.reactivex.internal.schedulers.ScheduledRunnable.call (ScheduledRunnable.java:57) W / System.err: at java.util.concurrent.FutureTask.run (FutureTask.java:266) W / System.err: в java.util.concurrent.ScheduledThreadPoolExecutor $ ScheduledFutureTask.run (ScheduledThreadPoolExecutor.java:301) W / System.err: at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1167) W / System.err: at java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:641) W / System.err: at java.lang.Thread.run (Thread.java:764) W / System.err: вызвано: java.lang.IllegalStateException: ожидается BEGIN_OBJECT, но был STRING в строке 1, путь 1 столбца $ W / System.err:
на com.google.gson.stream.JsonReader.beginObject (JsonReader.java:385) W / System.err: at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory $ Adapter.read (ReflectiveTypeAdapterFactory.java:213)

Что может быть причиной этого?

1 Ответ

0 голосов
/ 04 ноября 2018

Эта ошибка говорит о том, что существует ошибка, когда GSON пытается проанализировать JSON, возвращаемый вызываемой веб-службой. В частности, GSON ожидает объект JSON, но получает строку (см. Первую строку сообщения об ошибке). Если ошибка возникает только при первом ее вызове, а не при втором, это означает, что веб-служба возвращает 2 разных ответа, и GSON может правильно проанализировать второй, но не первый.

Чтобы выяснить, что не так, вы должны предоставить более подробную информацию, такую ​​как модель данных и 2 ответа, возвращенных веб-службой.

...