首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用SDWebImage下载图像,错误-999 (或) SDWebImageErrorDomain Code=0“下载图像有0像素

使用SDWebImage下载图像,错误-999 (或) SDWebImageErrorDomain Code=0“下载图像有0像素
EN

Stack Overflow用户
提问于 2019-02-05 16:24:00
回答 4查看 2.2K关注 0票数 5

我无法使用SDWebImage 4.4.5版本下载目标c中的图像。

尝试1:

代码语言:javascript
运行
复制
[self.thumbnailImageView sd_setImageWithURL:[NSURL URLWithString:thumbnailURLString] completed:^(UIImage * _Nullable image, NSError * _Nullable error, SDImageCacheType cacheType, NSURL * _Nullable imageURL) {

}];

尝试2:

代码语言:javascript
运行
复制
[self.thumbnailImageView sd_setImageWithURL:[NSURL URLWithString:thumbnailURLString] placeholderImage:nil options:SDWebImageRefreshCached completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) { if(image != nil){
            self.thumbnailImageView.image = image;                
        } else {
            NSLog(@"Photo Not Available, fetch");
            [self.thumbnailImageView sd_setImageWithURL:[NSURL URLWithString:thumbnailURLString] placeholderImage:nil options:SDWebImageRefreshCached completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {
                if(image != nil) { NSLog(@"Lo Res Image Loaded by %ld from '%@'", (long)cacheType, imageURL);
                    self.thumbnailImageView.image = image;

                } else {
                    self.thumbnailImageView.image = nil;

                } }];

        } }];

尝试3:

代码语言:javascript
运行
复制
[[SDWebImageDownloader sharedDownloader] downloadImageWithURL:[NSURL URLWithString:thumbnailURLString] options:SDWebImageDownloaderUseNSURLCache progress:nil completed:^(UIImage *image, NSData *data, NSError *error, BOOL finished) {


        }];

尝试4:

代码语言:javascript
运行
复制
SDWebImageManager *manager = [SDWebImageManager sharedManager];

        [manager loadImageWithURL:[NSURL URLWithString:thumbnailURLString] options:SDWebImageDelayPlaceholder progress:^(NSInteger receivedSize, NSInteger expectedSize, NSURL * _Nullable targetURL) {
        } completed:^(UIImage * _Nullable image, NSData * _Nullable data, NSError * _Nullable error, SDImageCacheType cacheType, BOOL finished, NSURL * _Nullable imageURL) {

        }];

尝试5:

代码语言:javascript
运行
复制
SDWebImageDownloader *manager = [SDWebImageManager sharedManager].imageDownloader;
        [manager setValue:@"application/vnd.learning.events.v1+json" forHTTPHeaderField:@"Accept"];
        [manager setValue:@"en-US" forHTTPHeaderField:@"Accept-Language"];
        [manager setValue:@"application/json; charset=utf-8" forHTTPHeaderField:@"Content-Type"];
        //[manager setValue:savedEmail forHTTPHeaderField:@"Email"];
        [manager setValue:savedToken forHTTPHeaderField:@"Authorization"];
        [manager downloadImageWithURL:[NSURL URLWithString:thumbnailURLString] options:SDWebImageDownloaderHighPriority progress:^(NSInteger receivedSize, NSInteger expectedSize, NSURL * _Nullable targetURL) {
        } completed:^(UIImage * _Nullable image, NSData * _Nullable data, NSError * _Nullable error, BOOL finished) {
            self.thumbnailImageView.image = image;
        }];

在所有上述情况下,都会得到以下错误:

错误UserInfo={NSErrorFailingURLStringKey=https://thisisnotcorrecturl.net/api/BAImage?ActionFlagId=97&id=615,代码=-999“取消”_NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask NSErrorFailingURLKey=https://thisisnotcorrecturl.net/api/BAImage?ActionFlagId=97&id=615,_NSURLErrorRelatedURLSessionTaskErrorKey=( "LocalDataTask <92586538-B07D-46FB-8694-3B29AA3F0CB4“.<7> ),_NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask<92586538-B07D-46FB-8694-3B29AA3F0CB4。<7>,NSLocalizedDescription=cancelled}

之前,我们使用了v3.5.4版本,能够用下面的代码下载图像。效果很好。

代码语言:javascript
运行
复制
[self.thumbnailImageView setImageWithURL:[NSURL URLWithString:thumbnailURLString]
                            placeholderImage:nil
                                   completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType) {
                                       if (image != nil){
                                           self.thumbnailImageView.image = [self imageResizingToAspetRatio:image];

                                       }
                                   }];

请告诉我是否有任何错误,或任何建议。

更新1:尝试使用post下载图像。请检查一下图像。在升级到SDWebImage v4.4.5之后,相同的图像URL在SDWebImage v3.5.4上工作,它不会倒置图像。

我遗漏了什么配置吗?还安装了pod 'SDWebImage/WebP‘,在构建设置中添加了SD_WEBP=1,->预处理宏。

错误:错误Domain=SDWebImageErrorDomain Code=0“下载图像有0像素”UserInfo={NSLocalizedDescription=Downloaded图像有0像素}

http://testingurl.net/api/Image?ActionFlagId=20&id=864

授权:电子邮件: kkk1@ler.com,令牌: A-BE3D-WER3-847F-ER6YG5678G

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2019-02-28 10:09:50

基本上,如果SDWebImage包含图像,则从任何URL下载它们都没有问题。

但是在您的例子中,您尝试从JSON获取图像。您的服务器API返回一个JSON对象,该对象包含图像为base64String。当您获得JSON响应时,您需要从json获取base64String,然后从base64String创建一个映像。

可以使用此方法使用Objective C将字符串解码为图像。

代码语言:javascript
运行
复制
- (UIImage *)decodeBase64ToImage:(NSString *)strEncodeData {
  NSData *data = [[NSData alloc]initWithBase64EncodedString:strEncodeData options:NSDataBase64DecodingIgnoreUnknownCharacters];
  return [UIImage imageWithData:data];
}
票数 4
EN

Stack Overflow用户

发布于 2019-02-28 08:39:21

首先,更新pod并尝试SDWebImage pod版本3.8.2。

第二件事是检查你的图像URL。因为我个人测试的图像下载用这个荚版本和下载功能是可行的。

票数 1
EN

Stack Overflow用户

发布于 2019-12-19 08:05:43

我也面临着同样的问题,我正在尝试webP图片。后来我意识到,我需要将webP编码器添加到SDImageCodersManager中。有点像

代码语言:javascript
运行
复制
SDImageCodersManager.shared.addCoder(SDImageWebPCoder.shared)

这是我在AppDelegate做的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54538780

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档