【问题标题】:After set Allow Arbitrary Loads,my http request still got the error message Transport Security has blocked a cleartext设置 Allow Arbitrary Loads 后,我的 http 请求仍然收到错误消息 Transport Security has blocked a cleartext
【发布时间】:2018-09-29 12:48:59
【问题描述】:

我将允许任意加载选项设置为是,允许所有 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];

【问题讨论】:

  • 您确定在应用的 Info.plist 中正确设置了设置吗?全面例外仍然有效(尽管如果您知道域,为什么不只使用例外域。它可以保护您的用户免受不安全的连接。

标签: xcode app-transport-security mknetworkkit


【解决方案1】:

设置异常域后,就可以了!但这意味着 Allow Arbitrary Loads 不起作用?

【讨论】:

    【解决方案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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-21
      • 2019-05-17
      • 2022-01-25
      • 1970-01-01
      • 2014-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多