
1.使用dio跳过证书验证
//证书验证
(_dio!.httpClientAdapter as DefaultHttpClientAdapter).onHttpClientCreate = (client){
client.badCertificateCallback=(cert, host, port){
return true;
};
return client;
};
2.在请求时设置状态responseType,及返回的数据类型
Response> response =_dio!.get>(path, options: Options(responseType: ResponseType.bytes))
3.
import 'dart:async';
import 'dart:typed_data';
import 'package:cockpitapp/service/service-base.dart';
import 'package:flutter_cache_manager/flutter_cache_manager.dart';
import 'package:http/http.dart' as http;
/// 缓存管理
class EsoImageCacheManager extends CacheManager {
static const key = 'libEsoCachedImageData';
static EsoImageCacheManager? _instance;
factory EsoImageCacheManager() {
_instance ??= EsoImageCacheManager._();
return _instance!;
}
EsoImageCacheManager._() : super(Config(key, fileService: EsoHttpFileService()));
}
class EsoHttpFileService extends FileService {
@override
Future
{Map
Uint8List result = await HttpServiceBase.getHttpServiceBase().getVideoString(url!,type: 'image');
final http.StreamedResponse _response = http.StreamedResponse(
Stream.value(response.data), response.statusCode,
);
return HttpGetResponse(_response);
}
}
4.设置cacheManager
.CachedNetworkImage(//图片
imageUrl: url,
width: width,
height: height,
fit: fit,
cacheManager: EsoImageCacheManager()
)
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)