3.2.flutter-https验证

import 'dart:core';
import 'dart:io';

import 'package:dio/adapter.dart';
import 'package:dio/dio.dart';
import 'package:flutter/services.dart';
import 'package:imes_base_plugins/common/logs.dart';

///https验证
addHttps1(Dio dio) async {
  ByteData data = await rootBundle.load('assets/certificate/DigiCertCA.crt');
  logs("data1: $data");
  (dio.httpClientAdapter as DefaultHttpClientAdapter).onHttpClientCreate = (client) {
    SecurityContext securityContext = SecurityContext();
    securityContext.setTrustedCertificatesBytes(data.buffer.asUint8List());
    client = HttpClient(context: securityContext);
    return client;
  };
}

///https验证
addHttps2(Dio dio) async {
  final file = "assets/certificate/star_idpbg_efoxconn_com.crt";
  (dio.httpClientAdapter as DefaultHttpClientAdapter).onHttpClientCreate = (client) {
    SecurityContext securityContext = SecurityContext();
    //file is the path of certificate
    securityContext.setTrustedCertificates(file);
    client = HttpClient(context: securityContext);
    return client;
  };
}

///https验证
addHttps3(Dio dio) async {
  final pem = await rootBundle.loadString('assets/certificate/star_idpbg_efoxconn_com-nginx.pem');
  logs("pem1: $pem");
  (dio.httpClientAdapter as DefaultHttpClientAdapter).onHttpClientCreate = (client) {
    client.badCertificateCallback = (X509Certificate cert, String host, int port) {
      // Verify the certificate
      logs("pem2: ${cert.pem}");
      if (cert.pem == pem) {
        logs("pem3 true");
        return true;
      } else {
        logs("pem4 false");
        return false;
      }
    };
    return client;
  };
}

///https验证-默认通过
addHttps4(Dio dio) async {
  (dio.httpClientAdapter as DefaultHttpClientAdapter).onHttpClientCreate = (client) {
    client.badCertificateCallback = (X509Certificate cert, String host, int port) {
      return true;
    };
    return client;
  };
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容