forked from lxm_flutter/FlutterUnit
67 lines
1.5 KiB
Dart
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;
|
|
}
|
|
}
|
|
|
|
|