Eu estava testando meu aplicativo em que estou trabalhando nos últimos dois meses. Basicamente, ele solicita o JSON, que contém informações sobre itens. Um campo do arquivo JSON é image_url. Quando eu quero exibir essa imagem, preciso baixá-la de outro servidor, que precisa de credenciais adicionais.
Então é assim- > No meu cellForRowAtIndexPath eu estou fazendo
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];
Agora, acabei de ocultar as credenciais (elas não são login: senha :)).
Meu problema é que agora recebo 3 itens. Todos os 3 têm imagem no mesmo servidor. Eu posso pegar dois deles com este código sem problema. No entanto terceiro é problemático, eu sempre recebo (NULL) imageLoad. No meu simulador, tudo funciona bem, eu recebo todas as 3 fotos. No dispositivo real, recebo um erro.
Eu tentei NSURLConnection com erro e resposta para que eu pudesse depurar melhor. Isto é o que eu recebi no meu erro.
Imprimindo a descrição do erro:
Error Domain=NSURLErrorDomain Code=-1202 "The certificate for this server is invalid. You might be connecting to a server that is pretending to be “server name” which could put your confidential information at risk." UserInfo=0x1e5a3080 {NSErrorFailingURLStringKey=pictureLink.jpg, NSLocalizedRecoverySuggestion=Would you like to connect to the server anyway?, NSErrorFailingURLKey=pictureLink.jpg, NSLocalizedDescription=The certificate for this server is invalid. You might be connecting to a server that is pretending to be “server name” which could put your confidential information at risk., NSUnderlyingError=0x1e5a30e0 "The certificate for this server is invalid. You might be connecting to a server that is pretending to be “server name” which could put your confidential information at risk.", NSURLErrorFailingURLPeerTrustErrorKey=}
Eu não uso o SSL, então estou realmente confuso como o que poderia causar esse erro.
Btw, tudo funcionou bem até agora (esta é a minha tela inicial, por isso tem sido feito por um bom mês e meio). Agora eu comecei a fazer gráficos e esse problema apareceu: (