Tengo una aplicación que usa ASIHTTPRequest.iOS 5: https (ASIHTTPRequest) deja de funcionar
I vuelve a compilar mi aplicación con IOS 5 (SDK: 5,0/Xcode: 4.2 Build 4D199) y el conexiones HTTPS fallar con el mensaje de error (la misma llamada con https obras discapacitados finas):
Error Domain=ASIHTTPRequestErrorDomain Code=1 "A connection failure occurred" UserInfo=0xa8e66e0 {NSUnderlyingError=0xa8ac6c0 "The operation couldn’t be completed. (OSStatus error -9844.)", NSLocalizedDescription=A connection failure occurred}
Con registro de depuración habilitada:
[STATUS] Starting asynchronous request <ASIFormDataRequest: 0xd96fc00>
[CONNECTION] Request <ASIFormDataRequest: 0xd96fc00> will not use a persistent connection
[STATUS] Request <ASIFormDataRequest: 0xd96fc00>: Failed
[CONNECTION] Request #(null) failed and will invalidate connection #(null)
me encontré con este post relacionados: https://devforums.apple.com/message/537440#537440 que podría expl A mi problema
basado en la idea de que el IOS 5 prefieren TLS 1.2, trato de cambiar la configuración de kCFStreamSocketSecurityLevelTLSv1 en AIHTTPRequest.m
NSDictionary *sslProperties = [[NSDictionary alloc] initWithObjectsAndKeys:
[NSNumber numberWithBool:YES],
kCFStreamSSLAllowsExpiredCertificates,
[NSNumber numberWithBool:YES], kCFStreamSSLAllowsAnyRoot,
[NSNumber numberWithBool:NO], kCFStreamSSLValidatesCertificateChain,
kCFNull,kCFStreamSSLPeerName,
kCFStreamSocketSecurityLevelTLSv1, kCFStreamSSLLevel,// my modif
nil];
sin éxito. Tal vez mi modificación es incorrecta?
Detalles:
- me dieron el ARC deshabilitado
- utilizo libz.1.2.5.dylib
- He actualizado el ASIHTTPRequest hace una semana.
No sé si el problema es una historia de certificado (como la versión TLS) u otra cosa.
¡cualquier ayuda/idea es bienvenida!
Vea también este parche: https://github.com/ignaval/asi-http-request/commit/c782abbeb204156d30ecbb902915d1eaf9b10f9e#comments - desea agregar la propiedad al caso validateCertificate = YES también – ckhan
Para mí, el cambio de @ ckhan fue requerido también antes de que funcione en 5.0 – leontx
force 'kCFStreamSocketSecurityLevelTLSv1_2' funciona con este método también – ReDetection