iOS SDWebImage NSURLErrorDomain 在联系服务器之前就出现错误 406,为什么?

标签 ios web-services url sdwebimage

我写了一个WS,它提供的功能之一就是头像(上传和服务器)。唯一的问题是,每当我尝试使用 SDWebImage (UIButton+SDWebImage) 访问一个时,我都会在完成处理程序中收到上述错误。完整错误为:(错误域=NSURLErrorDomain代码=406“操作无法完成。(NSURLErrorDomain错误406。)”) 奇怪的是,服务器从未被触及(登录以验证这一点)!有什么想法可能导致此问题以及如何解决它吗?

PS 如果我 NSLog 该 URL,然后将其复制并粘贴到浏览器中,它会完美运行,因此它适用于 SDWebImage 或 iOS。

编辑有问题的代码:

[btn setBackgroundImageWithURL:url forState:UIControlStateNormal placeholderImage:[UIImage imageNamed:@"user-empty.png"] completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType) {
                    if (error) {
                        NSLog(@"error loading image:%@",error);
                        return;
                    }
                    NSLog(@"image should be loaded");
                    dispatch_async(dispatch_get_main_queue(), ^{
                        [btn setBackgroundImage:image forState:UIControlStateHighlighted];
                    });
                }];

至于 URL,我不想分享它,因为我们目前没有域名,而且我不想透露我客户服务器的 IP...我相信你明白,但这里是 url 减去正确的 ip(请注意,我必须添加空格来发布编辑内容,它们不在实际的 url 中): http://192.168.1.21/uploads/51078f979c966bde0b000009/avatar.png

这可能是我的 WS 的问题吗?关于标题什么的?我知道它会发回“image/png”的内容类型(如果有帮助的话),就像我说的那样,它在浏览器中完美运行。难道是ip而不是域名?

更新我们已经设置了域名,但仍然无法正常工作,因此这里有一个可以在浏览器中使用的链接,但不能在 SDWebImage 或 AFNetworking 中使用:http://communication.notitlabs.co/uploads/511db303367885c248000015/avatar.png

最佳答案

如果您确实遇到 HTTP 错误 406,read up on that here - 听起来像是 HTTP header 的问题。

不过,可以肯定的是,您需要查看 NSError 对象的 code 属性,并将其与 Foundations Constants Reference 中的这些错误代码之一进行匹配。 :

   NSURLErrorUnknown = -1,
   NSURLErrorCancelled = -999,
   NSURLErrorBadURL = -1000,
   NSURLErrorTimedOut = -1001,
   NSURLErrorUnsupportedURL = -1002,
   NSURLErrorCannotFindHost = -1003,
   NSURLErrorCannotConnectToHost = -1004,
   NSURLErrorDataLengthExceedsMaximum = -1103,
   NSURLErrorNetworkConnectionLost = -1005,
   NSURLErrorDNSLookupFailed = -1006,
   NSURLErrorHTTPTooManyRedirects = -1007,
   NSURLErrorResourceUnavailable = -1008,
   NSURLErrorNotConnectedToInternet = -1009,
   NSURLErrorRedirectToNonExistentLocation = -1010,
   NSURLErrorBadServerResponse = -1011,
   NSURLErrorUserCancelledAuthentication = -1012,
   NSURLErrorUserAuthenticationRequired = -1013,
   NSURLErrorZeroByteResource = -1014,
   NSURLErrorCannotDecodeRawData = -1015,
   NSURLErrorCannotDecodeContentData = -1016,
   NSURLErrorCannotParseResponse = -1017,
   NSURLErrorInternationalRoamingOff = -1018,
   NSURLErrorCallIsActive = -1019,
   NSURLErrorDataNotAllowed = -1020,
   NSURLErrorRequestBodyStreamExhausted = -1021,
   NSURLErrorFileDoesNotExist = -1100,
   NSURLErrorFileIsDirectory = -1101,
   NSURLErrorNoPermissionsToReadFile = -1102,
   NSURLErrorSecureConnectionFailed = -1200,
   NSURLErrorServerCertificateHasBadDate = -1201,
   NSURLErrorServerCertificateUntrusted = -1202,
   NSURLErrorServerCertificateHasUnknownRoot = -1203,
   NSURLErrorServerCertificateNotYetValid = -1204,
   NSURLErrorClientCertificateRejected = -1205,
   NSURLErrorClientCertificateRequired = -1206,
   NSURLErrorCannotLoadFromNetwork = -2000,
   NSURLErrorCannotCreateFile = -3000,
   NSURLErrorCannotOpenFile = -3001,
   NSURLErrorCannotCloseFile = -3002,
   NSURLErrorCannotWriteToFile = -3003,
   NSURLErrorCannotRemoveFile = -3004,
   NSURLErrorCannotMoveFile = -3005,
   NSURLErrorDownloadDecodingFailedMidStream = -3006,
   NSURLErrorDownloadDecodingFailedToComplete = -3007

关于iOS SDWebImage NSURLErrorDomain 在联系服务器之前就出现错误 406,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14591409/

相关文章:

ios - 保存自定义相机捕获图像 iOS Xcode

c# - 有没有办法让在 VS 2005 中创建的 ASMX Web 服务接收和返回 JSON?

html - href 属性中带有哈希的 anchor 正在打开一个新页面

PHP 和 URL 中的 A id?

linux - URL与端口号的连通性测试

ios - Unity游戏加载缓慢

UITableView 中的 iOS 13 UISegmentedControl 缓存先前的选择

java - 使用 Keycloak 生成 token

java - AXIS2 和 JAX-WS 如何更改 SSL 握手?

ios - 如何使用callkit获取来电号码