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;
}