ente/lib/core/network.dart
2021-04-04 22:49:46 +05:30

39 lines
1.1 KiB
Dart

import 'dart:convert';
import 'dart:developer';
import 'dart:io';
import 'package:dio/dio.dart';
import 'package:flutter_user_agent/flutter_user_agent.dart';
import 'package:pretty_dio_logger/pretty_dio_logger.dart';
import 'package:super_logging/super_logging.dart';
class Network {
Dio _dio;
Future<void> init() async {
await FlutterUserAgent.init();
_dio = Dio(BaseOptions(
headers: {HttpHeaders.userAgentHeader: FlutterUserAgent.userAgent}));
_dio.interceptors.add(PrettyDioLogger(
requestHeader: false,
responseHeader: false,
requestBody: true,
responseBody: true,
logPrint: (object) async {
log(object);
if (Platform.isAndroid) {
await SuperLogging.logFile.writeAsString(
object.toString() + "\n",
encoding: Utf8Codec(allowMalformed: true),
mode: FileMode.append,
flush: true,
);
}
}));
}
Network._privateConstructor();
static Network instance = Network._privateConstructor();
Dio getDio() => _dio;
}