flutter dio HandshakeException: Handshake error in client 解决方法,以及DefaultHttpClientAdapter红线问题。
是证书问题导致,下面是强制认证import 'package:dio/dio.dart';import 'package:dio/adapter.dart';// 导入这个包,添加DefaultHttpClientAdapterResponse response;Dio dio = Dio();(dio.httpClientAdapter as DefaultHttpClientAdapter).
·
是证书问题导致,下面是强制认证
import 'package:dio/dio.dart';
import 'package:dio/adapter.dart'; // 导入这个包,添加DefaultHttpClientAdapter
Response response;
Dio dio = Dio();
(dio.httpClientAdapter as DefaultHttpClientAdapter).onHttpClientCreate = (client) {
client.badCertificateCallback = (cert, host, port) {
return true; // 返回true强制通过
};
};
try {
response = await dio.get(
url,
options: Options(
headers: {},
),
);
} catch (e) {
print('错误');
print(e);
}
证书验证
import 'package:dio/dio.dart';
import 'package:dio/adapter.dart'; // 导入这个包,添加DefaultHttpClientAdapter
Dio dio = Dio();
String PEM='XXXXX'; // 你的地址证书内容
(dio.httpClientAdapter as DefaultHttpClientAdapter).onHttpClientCreate = (client) {
client.badCertificateCallback=(X509Certificate cert, String host, int port){
if(cert.pem==PEM){ // 如果证书内容相同则验证通过
return true;
}
return false;
};
};
更多推荐
已为社区贡献4条内容
所有评论(0)