记一次Flutter简单粗暴处理HTTPS证书检验方法
  SSVqwpswHvNR 2023年11月02日 51 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安全性的意义了,因此还是老老实实地加上证书校验方法吧!


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  sX9JkgY3DY86   2023年11月13日   43   0   0 idesedImage
SSVqwpswHvNR