AFNetworking + HTTPS (личность не проверена)
Мне нужно получить записи с моего веб-сервера через https
Protcol. Мои вызовы API имеют базовую аутентификацию. Сейчас пытаюсь это с AFNetworking
версия 2.0x
После работы и выяснения простейшего способа добавления базовой аутентификации здесь. Теперь у меня проблема с https
вызов. Когда я выполняю свой код,
NSDictionary *params = ....;
AFHTTPRequestOperationManager *manager = [SBAPIManager sharedManager];
manager.responseSerializer = [AFJSONResponseSerializer serializer];
manager.requestSerializer = [AFJSONRequestSerializer serializer];
[manager.requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Accept"];
[manager.requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
@try {
[manager POST:@"Create" parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"Success - %@", responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"%@", error);
}];
} @catch (NSException *exception) {
NSLog(@"Exception - %@", exception.description);
}
Получаю только ответ,
Ошибка Domain=NSURLErrorDomain Code=-1012 "Операция не может быть завершена. (NSURLErrorDomain ошибка -1012.)" UserInfo = 0x7fd268560900 {NSErrorFailingURLKey = https://myapi.com/Create, NSErrorFailingURLStringKey = https: //api / Создать }
Я обнаружил проблему с github, но AFNetworking 2.x (instancetype)policyWithPinningMode:(AFSSLPinningMode)pinningMode;
по умолчанию. Как я мог интегрировать это в мое ограничение.
У кого-нибудь есть идеи по этому поводу?
1 ответ
Наконец-то нашёл ответ сам. Код ниже одного исправит мою проблему,
AFHTTPRequestOperationManager *manager = [[AFHTTPRequestOperationManager alloc] initWithBaseURL:[NSURL URLWithString:API_URL]];
manager.securityPolicy.allowInvalidCertificates = YES; // not recommended for production
manager.responseSerializer = [AFHTTPResponseSerializer serializer];
Для самостоятельного закрепления с помощью AFNetworking
мы должны включить ниже одной строки AFHTTPRequestOperationManager
даст результат,
manager.securityPolicy.allowInvalidCertificates = YES; // не рекомендуется для производства
Большое спасибо