dio_client.dart



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;
});
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容