首页 文章

无法从第一次加载来自webservice的数据

提问于
浏览
-1

获得Facebook访问令牌后,我使用它登录我自己的Web服务器 . 但是在第一次,日志文件中有警告,我无法从我的服务器加载数据,但是当我从第二次打开应用程序时,它正常加载 .

以下是警告日志:

W / System.err:com.google.gson.JsonSyntaxException:java.lang.IllegalStateException:预期为BEGIN_OBJECT,但在第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 . 转换(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 . 错误:在retrofit2.OkHttpCall.execute(OkHttpCall.java:180)W / System.err:at retrofit2.adapter.rxjava2.CallExecuteObservable.subscribeActual(CallExecuteObservable.java:42)W / System.err:at io.reactivex.Observable .subscribe(Observable.java:12084)W / System.err:at retrofit2.adapter.rxjava2.BodyObservable.subscribeActual(BodyObservable.java:34)W /System.err:at io.reactivex.Observable.subscribe(Observable.java:12084)W / System.err:at 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:at java . util.concurrent.ScheduledThreadPoolExecutor $计划FutureTask.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 . 运行(ThreadPoolExecutor.java:641)W / System.err:在java.lang.Thread.run(Thread.java:764)W / System.err:引起:java.lang.IllegalStateException:预期BEGIN_OBJECT但是STRING在第1行第1列路径$ W / System.err:at 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

    该错误告诉您GSON尝试解析您正在调用的Web服务返回的JSON时出错 . 特别是,GSON期望一个JSON对象,但它接收一个字符串(请参阅错误消息的第一行) . 如果错误仅在您第一次调用时发生而不是第二次,则意味着Web服务返回2个不同的答案,并且GSON可以正确解析第二个,而不是第一个 .

    为了找出问题所在,您应该提供更多详细信息,例如数据模型和Web服务返回的2个响应 .

相关问题