Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

依赖dio ^2.1.4 #3

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 33 additions & 16 deletions base_library/lib/src/data/net/dio_util.dart
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ class HttpConfig {
String data;

/// Options.
Options options;
BaseOptions options;

/// 详细使用请查看dio官网 https://github.com/flutterchina/dio/blob/flutter/README-ZH.md#Https证书校验.
/// PEM证书内容.
Expand Down Expand Up @@ -85,8 +85,8 @@ class DioUtil {
/// BaseResp [T data]字段 key, 默认:data.
String _dataKey = "data";

/// Options.
Options _options = getDefOptions();
/// BaseOptions.
BaseOptions _options = getDefOptions();

/// PEM证书内容.
String _pem;
Expand Down Expand Up @@ -133,8 +133,9 @@ class DioUtil {
_pem = config.pem ?? _pem;
if (_dio != null) {
_dio.options = _options;
DefaultHttpClientAdapter defaultHttpClientAdapter = _dio.httpClientAdapter;
if (_pem != null) {
_dio.onHttpClientCreate = (HttpClient client) {
defaultHttpClientAdapter.onHttpClientCreate = (HttpClient client) {
client.badCertificateCallback =
(X509Certificate cert, String host, int port) {
if (cert.pem == _pem) {
Expand All @@ -146,7 +147,7 @@ class DioUtil {
};
}
if (_pKCSPath != null) {
_dio.onHttpClientCreate = (HttpClient client) {
defaultHttpClientAdapter.onHttpClientCreate = (HttpClient client) {
SecurityContext sc = new SecurityContext();
//file为证书路径
sc.setTrustedCertificates(_pKCSPath, password: _pKCSPwd);
Expand Down Expand Up @@ -276,13 +277,13 @@ class DioUtil {
Future<Response> download(
String urlPath,
savePath, {
OnDownloadProgress onProgress,
ProgressCallback onProgress,
CancelToken cancelToken,
data,
Options options,
}) {
return _dio.download(urlPath, savePath,
onProgress: onProgress,
onReceiveProgress: onProgress,
cancelToken: cancelToken,
data: data,
options: options);
Expand All @@ -308,18 +309,34 @@ class DioUtil {
}

/// merge Option.
void _mergeOption(Options opt) {
void _mergeOption(BaseOptions opt) {
// _options.method = opt.method ?? _options.method;
// _options.headers = (new Map.from(_options.headers))..addAll(opt.headers);
// _options.baseUrl = opt.baseUrl ?? _options.baseUrl;
// _options.connectTimeout = opt.connectTimeout ?? _options.connectTimeout;
// _options.receiveTimeout = opt.receiveTimeout ?? _options.receiveTimeout;
// _options.responseType = opt.responseType ?? _options.responseType;
// _options.data = opt.data ?? _options.data;
// _options.extra = (new Map.from(_options.extra))..addAll(opt.extra);
// _options.contentType = opt.contentType ?? _options.contentType;
// _options.validateStatus = opt.validateStatus ?? _options.validateStatus;
// _options.followRedirects = opt.followRedirects ?? _options.followRedirects;

_options.method = opt.method ?? _options.method;
_options.headers = (new Map.from(_options.headers))..addAll(opt.headers);
_options.baseUrl = opt.baseUrl ?? _options.baseUrl;
_options.baseUrl = opt.baseUrl ?? _options.baseUrl;
_options.queryParameters = opt.queryParameters ?? _options.queryParameters;
_options.connectTimeout = opt.connectTimeout ?? _options.connectTimeout;
_options.receiveTimeout = opt.receiveTimeout ?? _options.receiveTimeout;
_options.extra = opt.extra ?? new Map.from(_options.extra ?? {});
_options.headers = opt.headers ?? new Map.from(_options.headers ?? {});
_options.responseType = opt.responseType ?? _options.responseType;
_options.data = opt.data ?? _options.data;
_options.extra = (new Map.from(_options.extra))..addAll(opt.extra);
_options.contentType = opt.contentType ?? _options.contentType;
_options.validateStatus = opt.validateStatus ?? _options.validateStatus;
_options.receiveDataWhenStatusError = opt.receiveDataWhenStatusError ?? _options.receiveDataWhenStatusError;
_options.followRedirects = opt.followRedirects ?? _options.followRedirects;
_options.maxRedirects = opt.maxRedirects ?? _options.maxRedirects;
_options.requestEncoder = opt.requestEncoder;
_options.responseDecoder = opt.responseDecoder ?? _options.responseDecoder;
}

/// print Http Log.
Expand All @@ -341,7 +358,7 @@ class DioUtil {
}

/// get Options Str.
String _getOptionsStr(Options request) {
String _getOptionsStr(RequestOptions request) {
return "method: " +
request.method +
" baseUrl: " +
Expand Down Expand Up @@ -370,15 +387,15 @@ class DioUtil {
}

/// create new dio.
static Dio createNewDio([Options options]) {
static Dio createNewDio([BaseOptions options]) {
options = options ?? getDefOptions();
Dio dio = new Dio(options);
return dio;
}

/// get Def Options.
static Options getDefOptions() {
Options options = new Options();
static BaseOptions getDefOptions() {
BaseOptions options = new BaseOptions();
options.contentType =
ContentType.parse("application/x-www-form-urlencoded");
options.connectTimeout = 1000 * 30;
Expand Down
3 changes: 2 additions & 1 deletion base_library/pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,8 @@ dependencies:
fluintl: '>=0.1.3 <1.0.0'

# https://github.com/flutterchina/dio
dio: 1.0.13
# dio: 1.0.13
dio: ^2.1.4

# Flutter 全局屏幕适配。https://github.com/flutterchina/auto_size
auto_size:
Expand Down