Estoy escribiendo una aplicación de iPhone y me gustaría conectarme a un servidor 'HTTPS' para obtener información. Sin embargo, me sale el error en la consola que es"certificado de servidor que no es de confianza" en el iPhone
NSUnderlyingError = error de dominio = Código kCFErrorDomainCFNetwork = -1,202 UserInfo = 0x3e95cf0 "El certificado para este servidor no es válido. Usted posible que se conecta a un servidor que es pretendiendo ser "ejemplo.com" que podría poner su información confidencial en riesgo. "; }
¿Cómo puedo confiar en el certificado y obtener el código de estado HTTP 200
La siguiente es mi código.
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
}
gracias, sam. Es muy útil. Pero todavía tengo 1 pregunta, ¿dónde debería poner el código? Solía poner el código dentro de una clase .m Pero no funcionó. Revisé el sitio web para desarrolladores de Apple, sé que son funciones predefinidas, pero ¿dónde debería llamarlo? También solía poner NSLog() para imprimir el contenido, pero no pude ver el contenido del NSLog. muchas gracias. – Questions
por favor vea mi respuesta en su otro hilo con la misma pregunta :) .. thxs – samsam