Files
flutter-picgo/lib/utils/net.dart
2020-08-14 16:09:40 +08:00

106 lines
2.6 KiB
Dart

import 'package:dio/dio.dart';
import 'package:flutter_picgo/api/qiniu_api.dart';
import 'package:flutter_picgo/api/tcyun_api.dart';
import 'package:flutter_picgo/api/upyun_api.dart';
const bool inProduction = const bool.fromEnvironment("dart.vm.product");
class NetUtils {
Dio _dio;
static NetUtils _instance;
NetUtils._internal() {
_dio = new Dio(BaseOptions(
connectTimeout: 30000, receiveTimeout: 30000, sendTimeout: 30000));
/// Tcyun Interceptor
dio.interceptors.add(TcyunInterceptor());
/// Upyun Interceptor
dio.interceptors.add(UpyunInterceptor());
/// Qiniu Interceptor
dio.interceptors.add(QiniuInterceptor());
/// Log Interceptor
if (!inProduction) {
/// Log
dio.interceptors
.add(LogInterceptor(requestBody: true, responseBody: true));
}
}
Dio get dio => _dio;
static NetUtils getInstance() {
if (_instance == null) {
_instance = NetUtils._internal();
}
return _instance;
}
/// get method
Future get(String path,
{Map<String, dynamic> queryParameters,
Options options,
CancelToken cancelToken,
ProgressCallback onReceiveProgress}) async {
return await dio.get(path,
queryParameters: queryParameters,
options: options,
cancelToken: cancelToken,
onReceiveProgress: onReceiveProgress);
}
/// post method
Future post(
String path, {
data,
Map<String, dynamic> queryParameters,
Options options,
CancelToken cancelToken,
ProgressCallback onSendProgress,
ProgressCallback onReceiveProgress,
}) async {
return await dio.post(path,
data: data,
queryParameters: queryParameters,
options: options,
cancelToken: cancelToken,
onSendProgress: onSendProgress,
onReceiveProgress: onReceiveProgress);
}
/// put method
Future put(
String path, {
data,
Map<String, dynamic> queryParameters,
Options options,
CancelToken cancelToken,
ProgressCallback onSendProgress,
ProgressCallback onReceiveProgress,
}) async {
return await dio.put(path,
data: data,
queryParameters: queryParameters,
options: options,
cancelToken: cancelToken,
onSendProgress: onSendProgress,
onReceiveProgress: onReceiveProgress);
}
/// delete method
Future delete(String path,
{data,
Map<String, dynamic> queryParameters,
Options options,
CancelToken cancelToken}) async {
return await dio.delete(path,
data: data,
queryParameters: queryParameters,
options: options,
cancelToken: cancelToken);
}
}