forked from lxm_tools/flutter-picgo
106 lines
2.6 KiB
Dart
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);
|
|
}
|
|
}
|