У меня есть приложение, использующее ASIHTTPRequest .
Я перекомпилировал свое приложение с iOS 5 (sdk: 5.0 / xcode: 4.2 Build 4D199) и https-соединения не работают с сообщением об ошибке (тот же вызов с https отключено работает нормально):
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}
С включенным журналом отладки:
[STATUS] Starting asynchronous request
[CONNECTION] Request will not use a persistent connection
[STATUS] Request : Failed
[CONNECTION] Request #(null) failed and will invalidate connection #(null)
Я нашел этот связанный пост: https://devforums.apple.com/message/537440#537440 { {1}}, что могло бы объяснить мою проблему.
исходя из того, что iOS 5 предпочитает TLS 1.2, я безуспешно пытаюсь изменить параметр kCFStreamSocketSecurityLevelTLSv1 в 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];
. Может быть, моя модификация неверна?
Подробности:
Не знаю если проблема связана с сертификатом (например, TLS ve rsion) или что-то еще.
любая помощь / идея приветствуются!