成功调用后不支持的 URL 错误

Posted

技术标签:

【中文标题】成功调用后不支持的 URL 错误【英文标题】:Unsupported URL Error after successful call 【发布时间】:2015-08-25 16:22:15 【问题描述】:

我很困惑为什么即使图像已成功下载并显示,错误块仍在调用。我在日志中得到的错误是,

Error = Error Domain=NSURLErrorDomain Code=-1002 "不支持的 URL" UserInfo=0x7fe7840d8000 NSUnderlyingError=0x7fe781d5b5e0 "不支持的 URL", NSErrorFailingURLStringKey=, NSErrorFailingURLKey=, NSLocalizedDescription=不支持的 URL

即使我收到此错误,我也可以获取图像,对其进行解析并将其显示在应用程序中。这段代码我哪里错了,

@try
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^
NSURL *url = [NSURL URLWithString:imageUrl];
NSURLRequest *req = [NSURLRequest requestWithURL:url];
[NSURLConnection sendAsynchronousRequest:req queue:[[NSOperationQueue alloc] init] completionHandler:^(NSURLResponse *res, NSData *data, NSError *error)
 UIImage *thumbImage = nil;
 if ([data length] >0 && error == nil)
    NSLog(@"image was downloaded.");
    thumbImage = [UIImage imageWithData:data];
 
 else if ([data length] == 0 && error == nil)
    NSLog(@"Nothing was downloaded.");
    [loaderView removeFromSuperview];
 
 else if (error != nil)
    NSLog(@"Error = %@", error);
    [loaderView removeFromSuperview];
 
  dispatch_async(dispatch_get_main_queue(), ^
    imageViewtoApply.image = thumbImage;
    [webServiceDelegate imageDownloadFinished];
    [loaderView removeFromSuperview];
    );
   ];
 );

【问题讨论】:

【参考方案1】:

查看http状态码,可能是错误码。

将响应投射到 NSHTTPURLResponse 并检查 statusCode 属性。

NSHTTPURLResponse *URLResponse = (NSHTTPURLResponse *)res;
NSLog(@"http status code: res.statusCode", %i);

【讨论】:

状态码为“0”。如果为 0,如何下载和显示图像? 真的吗?见Status Code Definitions,0 不是其中之一。您可以随时使用Charles Proxy 查看请求和响应。

以上是关于成功调用后不支持的 URL 错误的主要内容,如果未能解决你的问题,请参考以下文章

调用 HttpRequest.GetBufferlessInputStream 后不支持此方法或属性

Mojave 升级后不支持 dyld 部分

Electron 打包后不支持 ES6

Centos7 安装完成后不支持exfat,NTFS的处理办法

小程序微信支付接口成功后不回调

谷歌登录成功后不调用委托方法