You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
124 lines
3.2 KiB
124 lines
3.2 KiB
import 'package:dio/dio.dart';
|
|
import 'package:flutter/material.dart';
|
|
import 'package:power_logger/power_logger.dart';
|
|
|
|
void main() {
|
|
WidgetsFlutterBinding.ensureInitialized();
|
|
FlutterError.onError = (details) {
|
|
LoggerData.addData(details);
|
|
FlutterError.presentError(details);
|
|
};
|
|
runApp(MyApp());
|
|
}
|
|
|
|
class MyApp extends StatelessWidget {
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return MaterialApp(
|
|
title: 'PowerLogger\nDemo',
|
|
home: MyHomePage(title: 'PowerLogger Demo'),
|
|
//theme: ThemeData.dark(),
|
|
);
|
|
}
|
|
}
|
|
|
|
class MyHomePage extends StatefulWidget {
|
|
MyHomePage({Key? key, required this.title}) : super(key: key);
|
|
final String title;
|
|
|
|
@override
|
|
_MyHomePageState createState() => _MyHomePageState();
|
|
}
|
|
|
|
class _MyHomePageState extends State<MyHomePage> {
|
|
TextEditingController _textController =
|
|
TextEditingController(text: 'https://');
|
|
@override
|
|
void initState() {
|
|
super.initState();
|
|
NetTool.init();
|
|
NetTool.dio.get("https://192.168.31.255:8888");
|
|
NetTool.dio.get("https://www.baidu.com", queryParameters: {'test': 'test'});
|
|
NetTool.dio.get("https://www.baidu.com/ahefbawfbe.html");
|
|
NetTool.dio.post("https://www.baidu.com/ahefbawfbe.html",
|
|
data: FormData.fromMap({'test': 'test'}));
|
|
NetTool.dio.get(
|
|
"https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png");
|
|
PowerLogger.start(context);
|
|
LoggerData.addData('TEST', tag: 'TAG');
|
|
}
|
|
|
|
bool loading = false;
|
|
|
|
String? nullableValue;
|
|
|
|
@override
|
|
void dispose() {
|
|
_textController.dispose();
|
|
super.dispose();
|
|
}
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return Scaffold(
|
|
appBar: AppBar(
|
|
title: Text(widget.title),
|
|
),
|
|
body: Column(
|
|
children: [
|
|
TextButton(
|
|
onPressed: () {
|
|
Navigator.push(
|
|
context,
|
|
MaterialPageRoute(builder: (context) => Text(nullableValue!)),
|
|
);
|
|
},
|
|
child: Text('FAIL PAGE'),
|
|
),
|
|
TextField(
|
|
controller: _textController,
|
|
decoration: InputDecoration(
|
|
filled: true,
|
|
),
|
|
),
|
|
],
|
|
),
|
|
floatingActionButton: FloatingActionButton.extended(
|
|
icon: loading
|
|
? CircularProgressIndicator(
|
|
valueColor: AlwaysStoppedAnimation(Colors.white))
|
|
: Icon(Icons.send),
|
|
label: Text('发送'),
|
|
onPressed: loading
|
|
? null
|
|
: () async {
|
|
loading = true;
|
|
setState(() {});
|
|
await NetTool.dio.get(_textController.text).catchError((_) {});
|
|
loading = false;
|
|
setState(() {});
|
|
},
|
|
),
|
|
);
|
|
}
|
|
}
|
|
|
|
class NetTool {
|
|
static Dio dio = Dio();
|
|
static init() {
|
|
dio.interceptors.add(InterceptorsWrapper(
|
|
onRequest: (options, handler) async {
|
|
return handler.next(options);
|
|
},
|
|
onResponse: (response, handler) async {
|
|
LoggerData.addData(response);
|
|
return handler.next(response);
|
|
},
|
|
onError: (DioError e, handler) async {
|
|
LoggerData.addData(e);
|
|
return handler.next(e);
|
|
},
|
|
));
|
|
}
|
|
}
|