Flutter网络请求日志查看插件dio_log_viewer的使用
Flutter网络请求日志查看插件dio_log_viewer的使用
功能
dio_log_viewer 是一个 dio 辅助插件,用于捕获请求并在应用程序内查看它们。它提供了诸如请求复制和 JSON 展开等功能。
预览

开始使用
import 'package:dio_log_viewer/dio_log_viewer.dart';
使用方法
- 初始化 dio 并添加拦截器
Dio dio = Dio();
...
dio.interceptors.add(DioLogViewerInterceptor());
DioLogViewerInterceptor
类具有以下参数:
// enable: true, 默认为 true
final bool enable;
// 最大日志数量,默认为 50
final int maxLogCount;
DioLogViewerInterceptor({this.enable = true, this.maxLogCount = 50});
- 在应用程序入口处显示日志拖动按钮
DioLogViewer.showLogButton(context);
-
点击日志按钮后,您将看到被拦截的请求日志
-
隐藏日志按钮
DioLogViewer.dismiss();
注意事项
可以通过以下代码获取日志数据
导航到日志页面 <LogViewerListPage()>
Navigator.of(context).push(CupertinoPageRoute(builder: (context) {
return const LogViewerListPage();
}));
完整示例代码
import 'package:flutter/material.dart';
import 'package:dio/dio.dart';
import 'package:dio_log_viewer/dio_log_viewer.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(title: Text('dio_log_viewer Demo')),
body: Center(
child: ElevatedButton(
onPressed: () async {
Dio dio = Dio();
dio.interceptors.add(DioLogViewerInterceptor());
// 添加日志按钮
DioLogViewer.showLogButton(context);
try {
await dio.get('https://jsonplaceholder.typicode.com/posts');
} catch (e) {
print(e);
}
},
child: Text('发送请求'),
),
),
),
);
}
}
以上代码展示了如何初始化 dio,并添加 DioLogViewerInterceptor
拦截器,然后在按钮点击事件中发送请求并显示日志按钮。
更多关于Flutter网络请求日志查看插件dio_log_viewer的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter网络请求日志查看插件dio_log_viewer的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
dio_log_viewer
是一个用于查看和记录 Flutter 应用中使用 Dio 进行网络请求的日志插件。它可以帮助开发者更方便地调试和监控网络请求的详细信息。以下是使用 dio_log_viewer
的基本步骤:
1. 添加依赖
首先,在 pubspec.yaml
文件中添加 dio_log_viewer
的依赖:
dependencies:
flutter:
sdk: flutter
dio: ^4.0.0
dio_log_viewer: ^1.0.0
然后运行 flutter pub get
来获取依赖。
2. 初始化 Dio 和 DioLogViewer
在你的应用中初始化 Dio 并配置 DioLogViewer
。
import 'package:dio/dio.dart';
import 'package:dio_log_viewer/dio_log_viewer.dart';
void main() {
// 初始化 Dio
final dio = Dio();
// 添加 DioLogViewer 拦截器
dio.interceptors.add(DioLogViewerInterceptor());
runApp(MyApp(dio: dio));
}
class MyApp extends StatelessWidget {
final Dio dio;
MyApp({required this.dio});
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(dio: dio),
);
}
}
3. 使用 Dio 发送网络请求
在你的应用中使用 Dio
发送网络请求。所有请求和响应的日志都会被 DioLogViewer
记录。
class MyHomePage extends StatelessWidget {
final Dio dio;
MyHomePage({required this.dio});
void fetchData() async {
try {
final response = await dio.get('https://jsonplaceholder.typicode.com/posts');
print(response.data);
} catch (e) {
print(e);
}
}
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Flutter Dio Log Viewer'),
),
body: Center(
child: ElevatedButton(
onPressed: fetchData,
child: Text('Fetch Data'),
),
),
);
}
}
4. 查看日志
DioLogViewer
提供了一个 UI 界面来查看网络请求的日志。你可以通过调用 DioLogViewer.show(context)
来打开日志查看界面。
你可以在应用的某个按钮或菜单项中触发日志查看界面:
class MyHomePage extends StatelessWidget {
final Dio dio;
MyHomePage({required this.dio});
void fetchData() async {
try {
final response = await dio.get('https://jsonplaceholder.typicode.com/posts');
print(response.data);
} catch (e) {
print(e);
}
}
void showLogs(BuildContext context) {
DioLogViewer.show(context);
}
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Flutter Dio Log Viewer'),
actions: [
IconButton(
icon: Icon(Icons.list),
onPressed: () => showLogs(context),
),
],
),
body: Center(
child: ElevatedButton(
onPressed: fetchData,
child: Text('Fetch Data'),
),
),
);
}
}