createDio method
Dio
createDio()
Implementation
Dio createDio(){
Dio dio = Dio(copyBaseOptions());
if(openLog && _isInDebugMode){
dio.interceptors.add(dioLoggerInterceptor);
}
if (retry != 0) {
// dio.interceptors.add(element)
// dio.interceptors.add(RetryInterceptor(
// dio: dio,
// options: RetryOptions(
// retries: retry, // Number of retries before a failure
// retryInterval: const Duration(seconds: 1), // Interval between each retry
// )
// ));
}
///-----------------------------------------证书相关信息-------------------------------------
(dio.httpClientAdapter as DefaultHttpClientAdapter).onHttpClientCreate = (HttpClient client) {
client.badCertificateCallback = (X509Certificate cert, String host, int port) {
if (pem != null) {
if (cert.pem == pem) {
// 证书一致,则放行
return true;
}else{
return false;
}
}else{
return true;
}
};
};
if (pKCSPath != null && pKCSPwd != null) {
(dio.httpClientAdapter as DefaultHttpClientAdapter).onHttpClientCreate = (HttpClient client) {
SecurityContext sc = new SecurityContext();
//file为证书路径
sc.setTrustedCertificates(pKCSPath!, password: pKCSPwd);
HttpClient httpClient = new HttpClient(context: sc);
return httpClient;
};
}
return dio;
}