После установки Разрешить произвольные загрузки мой http-запрос по-прежнему получал сообщение об ошибке Transport Security заблокировал открытый текст.

Я установил для параметра «Разрешить произвольные загрузки» значение «ДА», разрешите все HTTP-запросы. Но когда я запускаю приложение, оно все еще получает сообщение об ошибке «Безопасность транспорта заблокировала загрузку ресурсов открытого текста HTTP (http://), поскольку это небезопасно. Временные исключения можно настроить с помощью файла Info.plist вашего приложения». Я точно знаю, это не рекомендуется...

введите здесь описание изображения

NSString *path=[[NSString alloc] initWithFormat:@"/su"];
NSMutableDictionary *param=[[NSMutableDictionary  alloc] init];
[param setValue:@"facebook" forKey:@"wd"];
MKNetworkEngine *engine=[[MKNetworkEngine alloc] initWithHostName:@"suggestion.baidu.com" customHeaderFields:nil];
MKNetworkOperation *op=[engine operationWithPath:path params:param httpMethod:@"get" ssl:NO];
[op addCompletionHandler:^(MKNetworkOperation *completedOperation) {

} errorHandler:^(MKNetworkOperation *completedOperation, NSError *error) {
    NSLog(@"error");
}];
[engine enqueueOperation:op];

person Ran Ji    schedule 19.04.2018    source источник
comment
Вы уверены, что правильно установили настройку в Info.plist своего приложения? Общее исключение все еще работает (хотя, если вы знаете домены, почему бы вам просто не использовать домены исключений. Оно защищает ваших пользователей от небезопасных соединений.   -  person wottle    schedule 20.04.2018


Ответы (2)


У меня была похожая проблема.
Второй ключ перезаписывает первый. Когда я удалил опцию Allow Arbitrary Loads in Web Content, она заработала.
Очевидно, что Allow Arbitrary следует оставить на YES.

Вероятно, вы используете iOS > 10.0 или macOS > 10.12.

Поведение ATS в зависимости от версии: в текущей операционной системе наличие подробного ключа безопасности транспорта (NSAllowsArbitraryLoadsForMedia, NSAllowsArbitraryLoadsInWebContent или NSAllowsLocalNetworking) переопределяет значение ключа NSAllowsArbitraryLoads на NO. Это позволяет вам установить для NSAllowsArbitraryLoads значение YES, если это необходимо для вашего приложения в старых операционных системах, не отключая ATS, как правило, в текущих операционных системах.

https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html#//apple_ref/doc/uid/TP40009251-SW68

person Freek Sanders    schedule 07.03.2019

После того, как я установил домен исключения, он работает! Но это означает, что Разрешить произвольные загрузки не работает?

person Ran Ji    schedule 19.04.2018