import 'package:dio/dio.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package: xxx/core/constants/app_constants.dart';
// Create a simple provider without code generation
final dioProvider = Provider<Dio>((ref) {
final dio = Dio();
// 基本配置
dio.options.baseUrl = AppConstants.baseUrl;
dio.options.connectTimeout = const Duration(seconds: 30);
dio.options.receiveTimeout = const Duration(seconds: 30);
dio.options.sendTimeout = const Duration(seconds: 30);
dio.options.headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
};
// 添加拦截器进行日志记录
dio.interceptors.add(LogInterceptor(
requestHeader: true,
requestBody: true,
responseHeader: true,
responseBody: true,
));
// 可以添加更多拦截器进行验证、错误处理等
dio.interceptors.add(InterceptorsWrapper(
onRequest: (options, handler) {
// 在请求前可以添加token等认证信息
// options.headers['Authorization'] = 'Bearer $token';
return handler.next(options);
},
onResponse: (response, handler) {
// 处理响应
return handler.next(response);
},
onError: (DioException e, handler) {
// 统一处理错误
return handler.next(e);
},
));
return dio;
});
dio_client.dart
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- dio 是dart 开源的网络库 ,基于dart语言 。使用简单,性能稳定 。 一.dio的架构 执行流: 请求拦...
- flutter中提供的dio插件, dio: 3.0.7 可以看到官方提供了http很多中请求方式 工作中除了使用...
- 摘要: Flutter项目中的网络请求采用的是dio网络请求库,dio是一个强大的Dart Http请求库,支持R...
- flutter_swiper和dio的引入 flutter_swiper组件作为第三方组件,我们需要通过在gith...