1

Я тестировал свое приложение, над которым я работал последние 2 месяца. В основном он запрашивает JSON, который содержит информацию об элементах. Одним из полей файла JSON является image_url. Когда я хочу отобразить это изображение, мне нужно загрузить его с другого сервера, который нуждается в дополнительных учетных данных.

Так это выглядит так -> В моем cellForRowAtIndexPath я делаю

NSDictionary *aucdict = [jsonAukResults objectAtIndex:indexPath.row];

NSURL *imageURL = [NSURL URLWithString:[aucdict objectForKey:@"img_url"]];

NSString *authPString = [[[NSString stringWithFormat:@"login:password"]dataUsingEncoding:NSUTF8StringEncoding] base64EncodedString];
NSString *verifPString = [NSString stringWithFormat:@"Image %@",authPString];
NSMutableURLRequest *Prequest = [[NSMutableURLRequest alloc] initWithURL:imageURL];
[Prequest setValue:verifPString forHTTPHeaderField:@"Authorization"];

NSError *error = nil;
NSURLResponse *resp = nil;
NSData *picresult = [NSURLConnection sendSynchronousRequest:Prequest returningResponse:&resp error:&error];


UIImage *imageLoad = [[UIImage alloc] initWithData:picresult];

Теперь я просто скрыл учетные данные (они не логин: пароль :)). Моя проблема в том, что сейчас я получаю 3 предмета. Все 3 имеют изображение на одном сервере. Я могу получить два из них с этим кодом без проблем. Однако третий проблематичен, я всегда получаю (NULL) imageLoad. На моем симуляторе все отлично работает, получаю все 3 картинки. На реальном устройстве я получаю ошибку.

Я попытался NSURLConnection с ошибкой и ответом, чтобы я мог отладить лучше. Это то, что я получил в своей ошибке.

Распечатка описания ошибки:

Ошибка домена = NSURLErrorDomain Code = -1202 "Сертификат для этого сервера недействителен. Возможно, вы подключаетесь к серверу, который притворяется «именем сервера», что может поставить под угрозу вашу конфиденциальную информацию. = pictureLink.jpg, NSLocalizedDescription = Сертификат для этого сервера недействителен. Возможно, вы подключаетесь к серверу, который притворяется «сервером», что может поставить под угрозу вашу конфиденциальную информацию. NSUnderlyingError = 0x1e5a30e0 "Сертификат для этого сервера недействителен. Возможно, вы подключаетесь к серверу, который притворяется «именем сервера», что может поставить под угрозу вашу конфиденциальную информацию. ", NSURLErrorFailingURLPeerTrustErrorKey =}

Я не использую SSL, поэтому я действительно запутался, так как это может вызвать эту ошибку. Кстати, до сих пор все работало нормально (это мой начальный экран, так что это было сделано в течение хороших полутора месяцев). Теперь я начал делать графику, и эта проблема появилась :(

1 ответ1

0

Мой друг сказал мне, чтобы попытаться добавить "?Символ в конце URL. Я не понимаю, почему, но вдруг это работает! Кто-нибудь может дать понять, почему это работает? :) Спасибо

NSMutableString *modURL = [NSMutableString stringWithString:[aucdict objectForKey:@"img_url"]];
    [modURL appendFormat:@"?"];
    NSURL *imageURL = [NSURL URLWithString:modURL];

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .