/ / zezwól na nieważne certyfikaty z AFNetworking - ios, target-c, afnetworking-2

zezwól na nieważne certyfikaty z AFNetworking - ios, target-c, afnetworking-2

Używałem następującego kodu

AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc]initWithRequest:request];
operation.allowsInvalidSSLCertificate=YES;

Teraz zmieniłem AFNetworking na najnowszą wersję, która jest 2.0. operation.allowsInvalidSSLCertyfikat nie działa już z AFHTTPRequestOperation. Jak na dokumenty, których użyłem

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
manager.securityPolicy.allowInvalidCertificates = YES;

i mój kod żądania jest

AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc]initWithRequest:request];

[operation  setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {

NSLog (@"success: %@", operation.responseString);

}
failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"error: %@",  error.description);
}
];

[operation start];
[operation waitUntilFinished];

Ale to nie działa dla protokołu HTTPS, który wymaga certyfikatów. Co powinienem zrobić, aby to zadziałało?

Odpowiedzi:

25 dla odpowiedzi № 1

Rozwiązałem ten problem, dodając następujący kod wcześniej [rozpoczęcie operacji];

AFSecurityPolicy *sec=[[AFSecurityPolicy alloc] init];
[sec setAllowInvalidCertificates:YES];
operation.securityPolicy=sec;

Stało się tak, ponieważ AFHTTPRequestOperationManager nie jest połączony z AFHTTPRequestOperation. Tak więc ustawianie certyfikatu bezpieczeństwa menedżera nie może wykonywać magii w requestOperation, więc trzeba go zainicjować i przypisać jeden AFHTTPRequestOperation.

Mam nadzieję, że to pomoże komuś :)


0 dla odpowiedzi nr 2

Z tego co wiem. Jest to problem iOS 7. Apple nie zezwala na komunikację z własnoręcznie podpisanymi stronami z certyfikatami, chyba że wyślesz certyfikat do urządzenia i dodasz jako zaufaną listę certyfikatów.

Wspieranie komentarza na inne pytanie: https://stackoverflow.com/a/20251011/753603

Nie mogłem znaleźć kawałka udokumentowanego tekstu od Apple.