【问题标题】:other class for Dio in flutter颤振中 Dio 的其他类
【发布时间】:2019-11-25 09:03:46
【问题描述】:

我正在为 dio 创建一个类 我与服务器的所有连接都发生在这个类中 现在我想在其他类中调用 onError 和 onSuccess 这方面的一个例子是在 Java 中使用接口完成的

谢谢

【问题讨论】:

    标签: android-studio flutter dio


    【解决方案1】:

    我已经这样做了, 首先,创建一个通用的dio类,

    class NetworkRepository {
      Future<String> getRequest(String url) async {
        var dio = Dio();
        print(url.toString());
        dio.interceptors.add(InterceptorsWrapper(
            onRequest:(RequestOptions options) async {
              print("REQUEST[${options?.method}] => PATH: ${options?.path}");
              return options; //continue
            },
            onResponse:(Response response) async {
              print("RESPONSE[${response?.statusCode}] => PATH: ${response?.request?.path}");
              return response; // continue
            },
            onError: (DioError err) async {
             print("ERROR[${err.toString()}] => PATH: ${err?.request?.path}");
              return  err;//continue
            }
        ));
        Response response = await dio.get(url);
        print(response.toString());
        return response.toString();
      }
      dynamic requestInterceptor(RequestOptions options) async {
        return options;
      }
    
    }
    

    当你想在你的任何课程中调用它时,

     NetworkRepository().getRequest(projects).then((onValue) {
          var dataConvertedToJSON = json.decode(onValue);
          print(dataConvertedToJSON);
          setState(() {
            ProjectModel model = ProjectModel.fromJson(dataConvertedToJSON);
            mList.add(model);
          });
        });
    

    您也可以尝试Bloc pattern 这样做。

    【讨论】:

      猜你喜欢
      • 2021-06-10
      • 2022-06-28
      • 2021-04-12
      • 1970-01-01
      • 1970-01-01
      • 2020-04-24
      • 2020-03-10
      • 2020-07-17
      • 2021-12-16
      相关资源
      最近更新 更多