NSMutableURLRequest retorna nulo no dispositivo real, enquanto retorna a imagem no simulador

1

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: (

    
por Yanchi 05.12.2012 / 11:27

1 resposta

0

Meu amigo me disse para tentar adicionar "?" símbolo no final do URL. Eu não entendo porque, mas de repente funciona! Alguém pode deixar claro porque funciona? :) Obrigado

NSMutableString *modURL = [NSMutableString stringWithString:[aucdict objectForKey:@"img_url"]];
    [modURL appendFormat:@"?"];
    NSURL *imageURL = [NSURL URLWithString:modURL];
    
por 07.12.2012 / 13:39

Tags