iOS SDWebImage获取https网络图片失效

NSData *data=[NSData dataWithContentsOfURL:[NSURL URLWithString:urlStr]];
UIImage *image = [UIImage imageWithData:data];

在使用https的图片在某些情况下使用这种方法会造成data返回为null,可尝试替换SDWebImage,但特殊情况下https依旧无法显示,事实上SDWebImage实际上是支持HTTPS的,但很多HTTPS站点都是用了自签名的SSL证书,就像浏览器会报不安全警告一样,SDWebImage也并不信任自签名的SLL证书。
此时情况增添SDWebImage下的optionsSDWebImageAllowInvalidSSLCertificates即可跳过无效的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];
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。