Error Domain=NSURLErrorDomain Code=403 “The operation couldn’t be completed. (NSURLErrorDomain error 403.)”

荒凉一梦 提交于 2019-12-08 10:50:17

问题


I am using sdwebimage and back4app backend . We are not able to load image from 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];

回答1:


For some reason your SDWebImage wasn’t persisting the user-Agent. I manually forced it to persist before every call. Just try this:

 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"];
            }


来源:https://stackoverflow.com/questions/40145676/error-domain-nsurlerrordomain-code-403-the-operation-couldn-t-be-completed-ns

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!