我正在尝试学习Reformat+RxJava是如何工作的,我正在测试一些示例。若我调用一个对象列表,我可以在控制台上打印这个对象列表。下面是代码:
Disposable disposable = apiInterface.getArea("4744", ".")
                .observeOn(AndroidSchedulers.mainThread())
                .subscribeOn(Schedulers.io())
                .subscribeWith(new DisposableObserver<List<Area>>() {
                                   @Override
                                   public void onNext(List<Area> areas) {
                                       Log.d("Response"," Value Area "+areas);
                                   }
                                   @Override
                                   public void onError(Throwable e) {
                                       Log.d("Error","JSON Error "+ e.getMessage());
                                   }
                                   @Override
                                   public void onComplete() {
                                   }
                               }
                );
型号类别:
public class Area {
    @SerializedName("v_area")
    private String typeArea;
    @SerializedName("area")
    private String desArea;
    public Area(String typeArea, String desArea) {
        this.typeArea = typeArea;
        this.desArea = desArea;
    }
    public String getTypeArea() {
        return typeArea;
    }
    public void setTypeArea(String typeArea) {
        this.typeArea = typeArea;
    }
    public String getDesArea() {
        return desArea;
    }
    public void setDesArea(String desArea) {
        this.desArea = desArea;
    }
}
然而,如果我尝试接收一个对象列表并使用RxJava运算符转换为字符串列表,则会出现错误:“D/OkHttp:<;--HTTP FAILED:android.os.NetworkOnMainThreadException”
Disposable disposable = apiInterface.getArea("4744",".")
                .map(response -> Observable.fromIterable(response))
                .flatMap(x->x)
                .map(Area::getTypeArea)
                .toList()
                .toObservable()
                .subscribe(this::handlerResponse,this::handlerError);
    }
    private void handlerResponse(List<String> strings) {
        System.out.println(strings);
    }
    private void handlerError(Throwable throwable) {
        Log.d("Error ","Response Error "+throwable.getMessage());
    }
有人能帮我解决吗?请再问一个问题。。。我能举个例子来捕捉响应错误吗?因为我没有收到任何http状态错误,但控制台上只有一个null。