Альтернативный метод для частного «setallowsanyhttpscertificate: Forhost:»?

StackOverflow https://stackoverflow.com/questions/2001565

Вопрос

Мое приложение для iPhone было отклонено исключительно для использования (очень безопасно, кажется) частный метод +setAllowsAnyHTTPSCertificate:forHost: за NSURLRequest. Анкет Есть ли не частный API для подражания этой функциональности?

Это было полезно?

Другие советы

На самом деле, я тестирую с 10.6.8, и этот код все еще работает - он использует частный API, но проверяю, что селектор существует (Myurl - это NSURL, который я пытаюсь загрузить в WebView или NSURLConnection):

SEL selx = NSSelectorFromString(@"setAllowsAnyHTTPSCertificate:forHost:");
if ( [NSURLRequest respondsToSelector: selx] )
{
    IMP fp;

    fp = [NSURLRequest methodForSelector:selx];

    (fp)([NSURLRequest class], selx, YES, [myurl host]);
}

Обратите внимание, что «@Selector» не использовался, так что абсолютно все Работа будет выполнена во время выполнения. Это делает его настолько безопасным и скрытым от чеков Apple, насколько это возможно, особенно если вы скрываете строку.

Один действительно глупый обходной путь - это сделать свой метод категории:

@implementation NSURLRequest (IgnoreSSL)

+ (BOOL)allowsAnyHTTPSCertificateForHost:(NSString *)host
{
    return YES;
}

@end

Это должно быть получено от частных проверок API Apple, но это все же то же самое (используя частное, незарегистрированное API [1], который может сломать в любое время). На самом деле, это хуже, так как это позволяет все, а не только этот хост.

1]: частный API, который должен быть обнародованным, но частный API, тем не менее.

SetAllowsAnyHttpsCertificate, похоже, теперь не поддерживается в OS X 10.6.6 вообще.

Я сказал 10.6.6? Возможно, мне следовало сказать «Снежная перспектива».

Не решение, а предложение. Вы думали об использовании Asihttprequest Framework для этого? Эта структура завершена во всех аспектах. Проверьте документацию, возможно, это может вам помочь.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top