android-studio - 颤振中 Dio 的其他课程
问题描述
我正在为 dio 创建一个类 我与服务器的所有连接都发生在这个类中现在我想在其他类中调用 onError 和 onSuccess 一个例子是在 Java 中用一个接口完成的
谢谢
解决方案
我是这样做的,首先,创建一个通用的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 模式来做到这一点。
推荐阅读
- permissions - Dovecot:userdb 查找:连接(/var/run/dovecot/auth-master)失败:权限被拒绝
- visual-studio-2017 - VS2017:E0135 命名空间“std”没有成员“文件系统”
- go - 运行时错误“恐慌:分配给零映射中的条目”
- javascript - 图像和文本对齐、页脚和文本问题
- javascript - 我有一个无序列表,我想滚动到可点击元素
- ruby - Rails - 在循环内渲染 Ajax
- arrays - 不使用单元格 Matlab 的可变大小的多维数组
- c# - 使用比较来比较
- ios - UIImageView.animationImages 后如何清除内存?
- ubuntu - 无法在 ubuntu 18.04 上安装 redis-server