从 http 更改为 https 后,SDWebImage 无法下载图像

SDWebImage not download image after change from http to https

我的项目中有一个 table 图片。

图像 url 以 http:

开头

在 tableView cellForRowAtIndexPath 我用这个方法为每个单元格下载图像。

- (void)sd_setImageWithURL:(NSURL *)url placeholderImage:(UIImage *)placeholder options:(SDWebImageOptions)options progress:(SDWebImageDownloaderProgressBlock)progressBlock completed:(SDWebImageCompletionBlock)completedBlock {
[self sd_cancelCurrentImageLoad];
objc_setAssociatedObject(self, &imageURLKey, url, OBJC_ASSOCIATION_RETAIN_NONATOMIC);

if (!(options & SDWebImageDelayPlaceholder)) {
    dispatch_main_async_safe(^{
        self.image = placeholder;
    });
}

if (url) {

    // check if activityView is enabled or not
    if ([self showActivityIndicatorView]) {
        [self addActivityIndicator];
    }

    __weak __typeof(self)wself = self;
    id <SDWebImageOperation> operation = [SDWebImageManager.sharedManager downloadImageWithURL:url options:options progress:progressBlock completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, BOOL finished, NSURL *imageURL) {
        [wself removeActivityIndicator];
        if (!wself) return;
        dispatch_main_sync_safe(^{
            if (!wself) return;
            if (image && (options & SDWebImageAvoidAutoSetImage) && completedBlock)
            {
                completedBlock(image, error, cacheType, url);
                return;
            }
            else if (image) {
                wself.image = image;
                [wself setNeedsLayout];
            } else {
                if ((options & SDWebImageDelayPlaceholder)) {
                    wself.image = placeholder;
                    [wself setNeedsLayout];
                }
            }
            if (completedBlock && finished) {
                completedBlock(image, error, cacheType, url);
            }
        });
    }];
    [self sd_setImageLoadOperation:operation forKey:@"UIImageViewImageLoad"];
} else {
    dispatch_main_async_safe(^{
        [self removeActivityIndicator];
        if (completedBlock) {
            NSError *error = [NSError errorWithDomain:SDWebImageErrorDomain code:-1 userInfo:@{NSLocalizedDescriptionKey : @"Trying to load a nil url"}];
            completedBlock(nil, error, SDImageCacheTypeNone, url);
        }
    });
}
  }

在 plist 中我有这个 NSAllowsArbitraryLoads

当我从 Plist 文件中删除 NSAllowsArbitraryLoads 时问题开始了 并将 url 更改为 https:一些图片下载速度很快,一些不下载。

可能是什么问题?

在我的应用程序(旧应用程序)中,我有一些图片要下载。 当我尝试使用 SDWebImage 执行此操作时,没有结果。

我的解决方案是将我的图像 url 复制到 safari,然后直接 URL 并使用它。

我认为是重定向 url 的问题,当有重定向 url 时,SDWebImage 无法下载此图像。

试一试,如果我自己有正确的答案,请告诉我:)