【问题标题】:Error Domain=NSURLErrorDomain Code=403 "The operation couldn’t be completed. (NSURLErrorDomain error 403.)"错误域=NSURLErrorDomain 代码=403“操作无法完成。(NSURLErrorDomain 错误 403。)”
【发布时间】:2016-10-20 04:47:50
【问题描述】:

我正在使用 sdwebimage 和 back4app 后端。我们无法从 back4app 加载图像。

 [immg1 sd_setImageWithURL:url11 placeholderImage:[UIImage imageNamed:@"pro"] completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {
                if (error)
                {
                    NSLog(@"B4A_Error: %@", error.localizedDescription);
                    NSLog(@"B4A_Error URL: %@", imageURL.absoluteString);

                }
                else
                {
                    NSLog (@"B4A_Success");
                    [immg1 setNeedsDisplay];
                }
            }];


//            [immg1 setImageWithURL:url11 usingActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];


           [imgView addSubview:immg1];

【问题讨论】:

  • 你能确定网上的图片存在吗?因为这个错误是由于文件不存在而发生的。

标签: ios objective-c back4app


【解决方案1】:

由于某种原因,您的 SDWebImage 没有保留 user-Agent。我在每次通话之前手动强制它持续存在。试试这个:

 NSString *userAgent = @"";
            userAgent = [NSString stringWithFormat:@"%@/%@ (%@; iOS %@; Scale/%0.2f)", [[[NSBundle mainBundle] infoDictionary] objectForKey:(__bridge NSString *)kCFBundleExecutableKey] ?: [[[NSBundle mainBundle] infoDictionary] objectForKey:(__bridge NSString *)kCFBundleIdentifierKey], [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"] ?: [[[NSBundle mainBundle] infoDictionary] objectForKey:(__bridge NSString *)kCFBundleVersionKey], [[UIDevice currentDevice] model], [[UIDevice currentDevice] systemVersion], [[UIScreen mainScreen] scale]];

            if (userAgent) {
                if (![userAgent canBeConvertedToEncoding:NSASCIIStringEncoding]) {
                    NSMutableString *mutableUserAgent = [userAgent mutableCopy];
                    if (CFStringTransform((__bridge CFMutableStringRef)(mutableUserAgent), NULL, (__bridge CFStringRef)@"Any-Latin; Latin-ASCII; [:^ASCII:] Remove", false)) {
                        userAgent = mutableUserAgent;
                    }
                }
                [[SDWebImageDownloader sharedDownloader] setValue:userAgent forHTTPHeaderField:@"User-Agent"];
            }

【讨论】:

    猜你喜欢
    • 2015-11-14
    • 1970-01-01
    • 1970-01-01
    • 2017-01-01
    • 2017-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多