Files
FlutterUnit/lib/app/utils/http_utils/http_util.dart
2022-03-26 21:25:40 +08:00

67 lines
1.5 KiB
Dart

import 'package:dio/dio.dart';
import 'package:flutter_unit/app/res/path_unit.dart';
import 'logs_interceptor.dart';
import 'token_interceptor.dart';
const int _kReceiveTimeout = 5000;
const int _kSendTimeout = 5000;
const int _kConnectTimeout = 5000;
class HttpUtil {
static final HttpUtil _instance = HttpUtil._internal();
Dio? _dio;
static const codeSuccess = 200;
static const codeTimeOut = -1;
factory HttpUtil() => _instance;
TokenInterceptors? tokenInterceptors;
///通用全局单例,第一次使用时初始化
HttpUtil._internal() {
if (null == _dio) {
_dio = Dio(BaseOptions(
baseUrl: PathUnit.baseUrl,
connectTimeout: _kReceiveTimeout,
receiveTimeout: _kConnectTimeout,
sendTimeout: _kSendTimeout,
));
_dio!.interceptors.add(LogsInterceptors());
// _dio.interceptors.add(ResponseInterceptors());
}
}
static HttpUtil getInstance() {
return _instance._default();
}
Dio get client => _dio!;
void setToken(String token){
print('---token---$token-------');
tokenInterceptors = TokenInterceptors(token: token);
_dio!.interceptors.add(tokenInterceptors!);
}
void deleteToken(){
_dio!.interceptors.remove(tokenInterceptors);
}
void rebase(String baseIp) {
_dio!.options.baseUrl = baseIp;
}
//一般请求,默认域名
HttpUtil _default() {
if (_dio != null) {
_dio!.options.baseUrl=PathUnit.baseUrl;
_dio!.options.headers = {};
}
return this;
}
}