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;
};
}
3.2.flutter-https验证
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
相关阅读更多精彩内容
- 在Xcode7.0之后,苹果废弃了NSURLConnection方法,数据请求使用NSURLSession,作为网...
- public function check_login($code='',$password='',$accoun...
- 1、修改AFNetworking中修改源码,在AFSecurityPolicy.m注释掉这几句 或者可以添加一个宏...
- 在Xcode7.0之后,苹果废弃了NSURLConnection方法,数据请求使用NSURLSession,作为网...