最近在做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】Dart 面向对象 ( get 方法 | set 方法 | 静态方法 ) https://hanshuliang.blog.csdn.net/article/details/113883540 博客源码快照
flutter简单应用 android studio上如何使用flutter简单明了
Flutter的Https证书固定 该项目基于 任何帮助表示赞赏! 评论,建议,问题,公关! 入门 在flutter或dart项目中添加依赖项: dependencies : ... http_certificate_pinning : 1.0.4 获取证书指纹 要获取SHA256...
最新最全flutter代码学习实例,包含23个小实例,千万不要错过。温馨提示;学习此代码先配置学习环境。
一个简单的Flutter项目,展示量身定制的原生体验
Flutter权限插件,此插件提供了一个跨平台(iOS,Android)API来请求和检查权限
Flutter的一个简单的动画径向菜单部件
Flutter 错误捕捉和处理插件
【Flutter】Dart 泛型 ( 泛型类 | 泛型方法 | 特定类型约束的泛型 ) https://hanshuliang.blog.csdn.net/article/details/114059611 博客源码快照
FlutterBoost的理念是将Flutter像Webview那样来使用。在现有应用程序中同时管理Native页面和Flutter页面并非易事。 FlutterBoost帮你处理页面的映射和跳转,你只需关心页面的名字和参数即可(通常可以是URL)
主要介绍了Flutter下载更新App的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
这是一个整理自Flutter官方的开发文档中文版,可帮助大家更好的学习Flutter,需要的朋友欢迎下载! Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面。 Flutter可以与现有的代码一起...
nc_flutter_util A new Flutter application. Getting Started For help getting started with Flutter, view our online documentation. Source tag: Demo1 Flutter custom indicator animation simple: ...
Flutter中一个简单的状态管理框架
一个Flutter实现的炫酷flip_panel
flutter使用NestedScrollView实现滑动联动吸顶
启动页是App必不可少的一部分,然而在一个新创建的Flutter项目中,运行发现是没有启动页的。 Android原生的白屏问题可以通过为 Launcher Activity 设置 windowBackground 解决,而 Flutter 也是基于此办法,同时优化...
flutter_pip 简单的插件可实现画中画支持。在图片模式下输入图片: int result = await FlutterPip . enterPictureInPictureMode (); 如果结果返回0,则表示应用已成功进入画中画模式;如果返回1,则很可能表示该...