2017-06-19 133 views
0

我没有从url.i获取图像,我无法在StackOverflow上找到合适的解决方案。我发现两种方法图像从URL转换,但他们没有工作从https url获取图像ios

NSURL *url = [NSURL URLWithString:@"https://mastersoftwaretechnologies.com:8014/uploads/50x50/6455.png"]; 
NSData *data = [NSData dataWithContentsOfURL:url]; 
UIImage *img = [[UIImage alloc] initWithData:data]; 

而第二种方法是

NSURL * imageURL = [NSURL URLWithString:[@"https://mastersoftwaretechnologies.com:8014/uploads/50x50/6455.png" stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; 
NSLog(@"img url ==%@",imageURL); 
NSData *data = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:imageURL]]; 
UIImage *MYimage = [UIImage imageWithData:data]; 

的UIImage在这两个条件

我已经添加返回nil NStransportsecurity

+0

你加入NSTransportSecurity在yiur应用 –

+0

看来你的网址有什么问题不能能够看到browser.Did可以形象? –

+0

是的..我增加了运输安全。 –

回答

0

请检查您的图像存储在后端的文件夹的权限。

+0

好吧,先生,让我问 –

+0

他们说..文件夹权限是可写的777. –

+0

你应该是777,好吧chk你的NSData值是零或有一定的价值。 –

0

更好地使用SDWebImage Library来下载图像,它在后端管理大量工作,包括内存管理和缓存。

SdWebImageLibrary

安装使用造成的,因为你的SSL证书或服务器端限制荚荚 'SDWebImage-ProgressView'

+0

我没有设置从URL的UIImageview图像。我只需要UIImage。 –

+0

从UIImageView你可以很容易地得到图像UIImageView.image –

0

此问题。

我检查了您的图片网址,并收到以下错误消息SDWebImage

试着去解决这个错误信息。

错误域= NSURLErrorDomain代码= -1200“发生了SSL错误,并且无法建立与服务器的安全连接。” UserInfo = {_ kCFStreamErrorCodeKey = -9806,NSLocalizedRecoverySuggestion =您想连接服务器吗?NSUnderlyingError = 0x1700504d0 {Error Domain = kCFErrorDomainCFNetwork Code = -1200“(null)”UserInfo = {_kCFStreamPropertySSLClientCertificateState = 0,_kCFNetworkCFStreamSSLErrorOriginalValue = -9806, _kCFStreamErrorDomainKey = 3,_kCFStreamErrorCodeKey = -9806}},NSLocalizedDescription =发生了SSL错误和服务器的安全连接无法进行,NSErrorFailingURLKey = https://mastersoftwaretechnologies.com:8014/uploads/50x50/6455.png,NSErrorFailingURLStringKey = https://mastersoftwaretechnologies.com:8014/uploads/50x50/6455.png,_kCFStreamErrorDomainKey = 3}

注 - 您需要根据您的ssl证书设置ATS。

OR

运行这个命令在终端为更多的解释。

nscurl --ats-diagnostics https://fmastersoftwaretechnologies.com --verbose 
0

您可以使用

#进口 “的UIImageView + AFNetworking.h”

[profileImageView setImageWithURL:[NSURL URLWithString:photoURL] placeholderImage:[UIImage的imageNamed:@ “占位符”]];

0

您可以使用此代码与有效的网址。

NSString *url = @""; 
NSURL *URL = [NSURL URLWithString:url]; 
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:URL]; 
[NSURLConnection sendAsynchronousRequest:request 
              queue:[NSOperationQueue mainQueue] 
           completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) { 
            if (!error) 
            { 
             UIImage *image = [[UIImage alloc] initWithData:data]; 
             self.myImage.image = image; 

            } 
           }]; 
0

请检查您提供的链接是否有一些限制,并且由于某种原因连接已关闭。 enter image description here

如果链接正确或没有限制,您可以在浏览器中查看图像内容,同时将链接ping到链接中。

承担赔偿责任图像下载,如果你想要做的本地方法,你可以去:

机映像下载:

{ 
NSURLSession *session = [NSURLSession sessionWithConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration] delegate:self delegateQueue:nil] 
NSString *urlString = @"http//:........";//url link 
urlString = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 
NSURLSessionDownloadTask *downloadSongTask = [session downloadTaskWithURL:[NSURL URLWithString:urlString]]; 
[downloadTask resume]; 
} 

你会得到下载进度和完整的委托回调。

SDWebImage:

1. Install -> pod 'SDWebImage' 
2. Import this header to class where you are downloading image, 
3. Code snippet: 
{ 
[imageView sd_setImageWithURL:url placeholderImage:[UIImage imageNamed:@"default"]options:SDWebImageAllowInvalidSSLCertificates]; 
}