美文网首页Flutter中文社区Flutter圈子Flutter
记一次Flutter简单粗暴处理HTTPS证书检验方法

记一次Flutter简单粗暴处理HTTPS证书检验方法

作者: 程序猿在广东 | 来源:发表于2019-10-13 12:25 被阅读0次

    最近在做Flutter项目到了遇到一个无解的事情,当使用Image.network来加载一张需要https且需要校验证书的图片时,控制台就会报错提示证书问题之类的英文,我当时找了很久关于flutter图片加载设置校验证书的方法,无解了,最后不太好的方法是直接改Image.network加载图片的方法,看了源码原理是利用了httpclent,所以当时用了一种更简单粗暴的方式,在加载图片初始化httpclent时,直接忽略了httpclent ssl证书验证的方式,虽然这样不太好,但可以临时解决问题嘛!

    Flutter原生网络请求httpclent

    简单粗暴方式处理校验证书方法

    _httpClient.badCertificateCallback = (X509Certificate cert,String host,int port){
      return true;
    };
    

    Flutter比较流行的网络请求开源插件http

    import 'package:http/http.dart' as http;
    
    
    //简单粗暴方式处理校验证书方法
    http.Client sslClient() {
      var ioClient = new HttpClient()
        ..badCertificateCallback = (X509Certificate cert, String host, int port) => true;
      http.Client _client = IOClient(ioClient);
    
      return _client;
    }
    //调用get 
    sslClient().get(url) 
    //post
    sslClient().post(url) 
    

    Flutter比较流行的网络请求开源插件dio

    //简单粗暴方式处理校验证书方法
    (_dio.httpClientAdapter as DefaultHttpClientAdapter).onHttpClientCreate  = (client) {
            client.badCertificateCallback=(X509Certificate cert, String host, int port){
    //          if(cert.pem==PEM){ // Verify the certificate
    //            return true;
    //          }
              return true;
            };
          };
    
    

    最后

    希望在某些时候能够用得上,但是这样的做法却有一种失去https安全性的意义了,因此还是老老实实地加上证书校验方法吧!

    相关文章

      网友评论

        本文标题:记一次Flutter简单粗暴处理HTTPS证书检验方法

        本文链接:https://www.haomeiwen.com/subject/dpvhmctx.html