NSData *data=[NSData dataWithContentsOfURL:[NSURL URLWithString:urlStr]];
UIImage *image = [UIImage imageWithData:data];
在使用https的图片在某些情况下使用这种方法会造成data返回为null,可尝试替换SDWebImage
,但特殊情况下https依旧无法显示,事实上SDWebImage实际上是支持HTTPS的,但很多HTTPS站点都是用了自签名的SSL证书,就像浏览器会报不安全警告一样,SDWebImage也并不信任自签名的SLL证书。
此时情况增添SDWebImage下的options
为 SDWebImageAllowInvalidSSLCertificates
即可跳过无效的SSL证书
另:如果仅出现个别机型需要更改SDWebImageAllowInvalidSSLCertificates
才可显示https图片而其他机型无此问题。
此时让后台查询下自己的SSL证书设置的!时间!
,将时间不要设置太靠前即可恢复
[[SDWebImageManager sharedManager]loadImageWithURL:[NSURL URLWithString:urlStr] options:SDWebImageAllowInvalidSSLCertificates progress:nil completed:^(UIImage * _Nullable image, NSData * _Nullable data, NSError * _Nullable error, SDImageCacheType cacheType, BOOL finished, NSURL * _Nullable imageURL) {
CGFloat imageHeight = 0;
if (image.size.width != 0) {
imageHeight = image.size.height/image.size.width * (kScreenWidth-24);//按所需控件比例计算图片高度
}
cellHeight+=(imageHeight+24);
}];
[imgView sd_setImageWithURL:[NSURL URLWithString:urlStr] placeholderImage:nil options:SDWebImageAllowInvalidSSLCertificates];
网友评论