flutter dio HandshakeException: Handshake error in client 解决方法,以及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
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值