47 lines
1.2 KiB
Dart
47 lines
1.2 KiB
Dart
import 'package:dio/dio.dart';
|
|
import 'package:flutter_dotenv/flutter_dotenv.dart';
|
|
import 'package:logger/logger.dart';
|
|
|
|
var logger = Logger(printer: PrettyPrinter());
|
|
|
|
class Http {
|
|
final Dio dio = Dio();
|
|
|
|
final String baseUrl = dotenv.env['BASE_URL'] ?? '';
|
|
|
|
Http() {
|
|
dio.options.baseUrl = baseUrl;
|
|
dio.options.connectTimeout = const Duration(seconds: 120);
|
|
dio.options.receiveTimeout = const Duration(seconds: 120);
|
|
dio.options.sendTimeout = const Duration(seconds: 120);
|
|
dio.interceptors.add(
|
|
LogInterceptor(
|
|
request: true,
|
|
responseBody: false,
|
|
requestBody: true,
|
|
error: true,
|
|
),
|
|
);
|
|
}
|
|
|
|
Future<dynamic> get(String url) async {
|
|
Response response;
|
|
response = await dio.get(baseUrl + url);
|
|
logger.i(response.data.toString());
|
|
return response.data;
|
|
}
|
|
|
|
Future<dynamic> post(String url, dynamic data) async {
|
|
Map<String, String> headers = {'Content-Type': 'application/json'};
|
|
|
|
Response response;
|
|
response = await dio.post(
|
|
baseUrl + url,
|
|
data: data,
|
|
options: Options(headers: headers),
|
|
);
|
|
logger.i(response.data.toString());
|
|
return response.data;
|
|
}
|
|
}
|