flutter Dio 4.0.0版 踩坑记

最近项目要用到flutter,所以上B站自学了下。

由于视频所用dio版本不同,踩了好几个坑,解决好几小时才弄好,有必要分享给大家:

教程中使用dio拦截器是3.0.9版本的,写法如下:

    dio.interceptors.add(InterceptorsWrapper(

      onRequest: (options) {

        print("请求" + options.headers.toString());

      },

      onResponse: (response) {

        print("接收" + response.toString());

      },

      onError: (handler) {

print(handler);

      },

    ));

由于我用的是dio 4.0.0版在调用的时候发现无法获取到返回值,明明是请求有错误,也无法获取到,网上搜索好久没法解决。

查看官方文档后终于解决了,以下是新版写法:

    dio.interceptors.add(InterceptorsWrapper(

      onRequest: (options, handler) {

        //必须传入request,与教程不同

        print("请求" + options.headers.toString());

        return handler.next(options); //必须返回,否则不往下走,与教程不同,下同

      },

      onResponse: (response, handler) {

        print("接收" + response.toString());

        return handler.next(response);

      },

      onError: (DioError e, handler) {

        return handler.next(e);

      },

    ));

区别都在上面了,希望能帮到碰到相同问题的人。

你可能感兴趣的:(flutter,flutter)