2017-06-19 179 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]; 
}