之前我使用的是 dart
http.Client
包中的常规 http
。我已经实现了以下内容以允许任何证书处于调试模式:
class BadCertificateHttpOverrides extends io.HttpOverrides {
@override
io.HttpClient createHttpClient(io.SecurityContext? context) {
bool callback(io.X509Certificate cert, String host, int port) => true;
return super.createHttpClient(context)..badCertificateCallback = callback;
}
}
if (kDebugMode) {
// Override to allow arbitrary certificates in debug mode
io.HttpOverrides.global = BadCertificateHttpOverrides();
}
但是,按照 CronetClient
包文档的建议,我现在开始分别在 Android 和 iOS 上使用
CupertinoClient
和
http
,但这不再有效。
这两种实现是否有类似的方法来允许调试模式下的任意证书?
目前:不,
CupertinoClient
或CronetClient
都不支持自签名证书。
对于
CupertinoClient
,这似乎不会很快改变(参见https://github.com/dart-lang/http/issues/1178)
对于
CronetClient
,它至少已被请求但尚未评论(请参阅https://github.com/dart-lang/http/issues/1314)