赞
踩
import 'package:dio/dio.dart'; class DioHttp { final Dio _dio = Dio(); // 静态资源域名 static const String _staticBaseUrl = 'https:// 静态资源域名地址'; // 数据请求域名 static const String _dataBaseUrl = 'https://数据请求域名地址'; DioHttp() { // 设置通用的基础URL _dio.options.baseUrl = _dataBaseUrl; // 设置请求头,这里用于携带认证数据(例如令牌) _dio.options.headers['Authorization'] = 'Bearer 你的token值'; // 添加请求前拦截器 _dio.interceptors.add(InterceptorsWrapper( onRequest: (options, handler) { print("请求前拦截触发"); // 打印请求的地址 print('Request Url: ${options.uri}'); // 在请求前的拦截器中可以执行一些操作,例如添加通用的请求头 options.headers['Custom-Header'] = 'Custom-Value'; return handler.next(options); // 继续请求 }, )); // 添加请求后拦截器 _dio.interceptors.add(InterceptorsWrapper( onResponse: (response, handler) { print("结束请求拦截触发"); // 在请求后的拦截器中可以执行一些操作,例如日志记录 print('Response Status Code: ${response.statusCode}'); return handler.next(response); // 继续后续操作 }, )); } // 配置静态资源域名 void setStaticBaseUrl() { _dio.options.baseUrl = _staticBaseUrl; } // 配置数据请求域名 void setDataBaseUrl() { _dio.options.baseUrl = _dataBaseUrl; } // 发起GET请求 Future<Response> get(String path, {Map<String, dynamic>? queryParameters}) { return _dio.get(path, queryParameters: queryParameters); } // 发起POST请求 Future<Response> post(String path, {dynamic data}) { return _dio.post(path, data: data); } // 发起多个请求 Future<List<Response>> batchRequests(List<RequestOptions> requests) { final futures = requests.map((request) { final options = Options( method: request.method, headers: request.headers, responseType: ResponseType.json, // 设置响应类型 ); return _dio.request(request.path, options: options, data: request.data); }).toList(); return Future.wait(futures); } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。