J'écris une application iPhone et je voudrais me connecter à un serveur 'HTTPS' pour obtenir des informations. Cependant, je reçois l'erreur dans la console qui est"certificat de serveur non approuvé" sur l'iPhone
NSUnderlyingError = erreur Domaine = code kCFErrorDomainCFNetwork = -1202 UserInfo = 0x3e95cf0 « Le certificat pour ce serveur est invalide. Vous peut-être connecté à un serveur qui est prétendre être "example.com" ce qui pourrait mettre en danger vos informations confidentielles. "; }
Comment puis-je faire confiance au certificat et obtenir le code d'état HTTP 200
Ce qui suit est mon code.
NSMutableURLRequest *request_get2 = [[[NSMutableURLRequest alloc] init] autorelease];
[request_get2 setURL:[NSURL URLWithString:@"https://www.example.com"]];
[request_get2 setHTTPMethod:@"GET"];
[request_get2 setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
//[request_get2 setValue:@"text/html; charset=UTF-8" forHTTPHeaderField:@"Content-Type"];
[request_get2 setValue:@"https://www.example.com" forHTTPHeaderField:@"Referer"];
[request_get2 setHTTPShouldHandleCookies:YES];
// cookiesString is in format "cookieName=cookieValue;"
[request_get2 setValue: (NSString *) cookiesString forHTTPHeaderField:@"Cookie"];
// doGet - response
NSHTTPURLResponse *response_get2 = nil; // it change from 'NSURLRespaonse' to 'NSHTTPURLResponse'
NSError *error_get2 = nil;
NSData *responseData_get2 = [NSURLConnection sendSynchronousRequest:request_get2 returningResponse:&response_get2 error:&error_get2];
NSString *data_get2 = [[NSString alloc]initWithData:responseData_get2 encoding:NSUTF8StringEncoding];
if (!error_get2) {
NSString *responseURL_get2 = [[response_get2 URL] absoluteString]; // null value
NSString *responseTextEncodingName_get2 = [response_get2 textEncodingName]; // null value
NSString *responseMIMEType_get2 = [response_get2 MIMEType]; // null value
NSUInteger *responseStatusCode_get2 = [response_get2 statusCode]; //[responseStatusCode intValue]; // the status code is 0
}
else {
NSLog(@"\nsomething went wrong: %@\n", [error_get2 userInfo]); // got the error in here
}
merci, sam. C'est très utile. Mais j'ai encore 1 questions, où devrais-je mettre le code. J'avais l'habitude de mettre le code dans une classe .m. Mais cela n'a pas fonctionné. J'ai vérifié le site Web du développeur Apple, je sais que ce sont des fonctions prédéfinies, mais où dois-je l'appeler? J'avais aussi l'habitude de mettre le NSLog() pour imprimer le contenu, mais je ne pouvais pas voir le contenu du NSLog. Merci beaucoup. – Questions
s'il vous plaît voir ma réponse dans votre autre fil avec la même question :) .. thxs – samsam