flutter使用dio包进行网络请求、拦截器
import 'package:dio/dio.dart';
void main() async {
var dio = Dio();
// 添加请求拦截器
dio.interceptors.add(InterceptorsWrapper(
onRequest: (RequestOptions options, RequestInterceptorHandler handler) {
// 在发送请求之前做些事情
print('请求前: ${options.uri}');
return handler.next(options); // 继续请求
},
onResponse: (Response response, ResponseInterceptorHandler handler) {
// 在收到响应之前做些事情
print('响应前: ${response.data}');
return handler.next(response); // 继续处理响应
},
onError: (DioError err, ErrorInterceptorHandler handler) {
// 在请求失败的时候做些事情
print('请求出错: ${err.message}');
return handler.next(err); // 继续处理错误
},
));
// 发起GET请求
try {
var response = await dio.get('http://www.example.com');
print('响应: ${response.data}');
} catch (e) {
print('错误: $e');
}
}
这段代码演示了如何在Flutter项目中使用Dio包来发起网络请求,并通过拦截器来处理请求前、响应后以及错误情况。在请求前打印请求的URI,在收到响应前打印响应数据,在请求出错时打印错误信息。这有助于调试和了解网络请求的流程。
评论已关闭