无法从服务器加载订单列表

问题描述 投票:0回答:1

我正在使用Retrofit Library从服务器加载一些数据。从服务器加载一些数据时会产生麻烦。有时加载数据。有些时间没有加载并在日志中显示以下异常。我不明白现在该做什么。

例外:

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

我在Line“返回Observable.fromCallable(new Callable()”和行“return call.execute();”上的这个java类中收到错误。

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());
}

}

android api server
1个回答
3
投票

您期望服务器中有一个Json对象,但您收到的是非Json响应。

您可以使用Postman测试您的API,或者在您的请求中添加HTTP Logger以查看您实际获得的内容。

我不明白为什么你在这里使用自定义Observable。如果您正在使用Retrofit2和RxJava2,那么您应该使用RxJava2CallAdapterFactory直接从Retrofit本身接收Observable,以正确的方式使用它。

无论如何,正如我已经说过的问题是来自服务器的响应。你必须以某种方式看到你实际从服务器获得的东西。

© www.soinside.com 2019 - 2024. All rights reserved.