NSURLConnection完成错误 - 代码-1022

时间:2017-12-18 09:15:57

标签: ios webview

专家 我尝试学习webview它不能加载给我错误,如:

  

NSURLConnection完成错误 - 代码-1022

- (void)viewDidLoad {
        [super viewDidLoad];
        NSString *urlString = @"http://www.sourcefreeze.com";
        NSURL *url = [NSURL URLWithString:urlString];
        NSURLRequest *request = [NSURLRequest requestWithURL:url];
        [_webView loadRequest:request];

    }

5 个答案:

答案 0 :(得分:14)

我认为这是关于App Transport Security。因为您的网址不是https。请在info.plist文件中尝试更改

<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>

答案 1 :(得分:2)

您收到此错误是因为您没有使用https网址。要修复以下步骤:

  • 右键单击info.plist文件。
  • 打开源代码。
  • / dict 之前添加以下行:

    <key>NSAppTransportSecurity</key>
    <dict>
        <key>NSAllowsArbitraryLoads</key>
        <true/>
    </dict>
    

答案 2 :(得分:2)

我遇到了类似的问题,

NSURLConnection finished with error - code -1200

我试图到达公司的封锁港口。更改端口可使我正常连接。

答案 3 :(得分:0)

要回答您的问题,我们需要查看完整日志。但我想App Transport Security中的问题。从iOS 9开始,所有连接都应该使用https完成,并且目标URL应该使用大于或等于1.2的TLS版本进行备份,直到您不在App Transport安全性部分的info.plist文件中指定例外。您也可以为所有连接“允许任意加载”,但这种方式不是首选。您可以在https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html(在NSAppTransportSecurity部分中)

中阅读有关此内容的更多详细信息

答案 4 :(得分:0)

一些愚蠢的事情,但是尝试如下:

  1. 首先,您可以尝试在模拟器上检查问题,即在模拟器中运行应用程序,并检查是否仍然存在问题。

  2. 网络内类或您的API调用函数所在的位置 检查是否已实现

    request.allHTTPHeaderFields = ["Content-Type" : "application/json"]

  3. 右键单击info.plist文件。 选择打开作为源代码。

检查并在下面查找是否存在行

<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>

如果不存在,则在/ dict之前添加以上行:

  1. 此外,检查您的URL是否来自本地服务器,并且您要切换到其他实时URL。

  2. 检查设备的互联网连接。