NSURLConnection完成错误 - 代码-1002

时间:2017-10-12 10:44:14

标签: xcode nsurlconnection mpmovieplayercontroller ios11

朋友我有简单的音频播放器(MPMoviePlayerController)可以播放音频流。在iOS 11上,我遇到了非常麻烦的问题,我有一千次错误,我的流被停止了:

NSURLConnection finished with error - code -1002

我粘贴了这段代码(这是我在stackowerflow上看到的代码),但它对我没有帮助:

<key>NSAppTransportSecurity</key>
    <dict>
        <key>NSAllowsArbitraryLoads</key>
        <true/>
        <key>NSExceptionDomains</key>
        <dict>
            <key>cast.mysite.com</key>
            <dict>
                <key>NSExceptionAllowsInsecureHTTPLoads</key>
                <true/>
                <key>NSIncludesSubdomains</key>
                <true/>
            </dict>
        </dict>
    </dict>

也许你知道最好的解决方案?

3 个答案:

答案 0 :(得分:29)

该错误 与使用HTTP而不是HTTPS有关。 App Transport Security失败返回错误代码-1022。

错误代码-1002表示无效的网址。也许您的HTTP直播流播放列表文件包含结构无效的URL(例如缺少方案,http / https以外的方案等)?

要进行其他调试,请设置此环境变量

CFNETWORK_DIAGNOSTICS=1
在您的Xcode项目中

并重新运行该应用程序。一旦你知道哪个URL失败了,问题就会变得更加明显。

如果不是,请提交错误。

答案 1 :(得分:1)

如果您的URL包含空格,则会出现此问题。我通过用“%20”替换空格来解决它,然后您可以安全地使用它。替换空格的Objective C代码如下。

your_url_variable_name = [your_url_variable_name stringByReplacingOccurrencesOfString:@" " withString:@"%20"];

答案 2 :(得分:-1)

首先,您必须使用安全服务器(具有有效证书的服务器)。 我不确定是否有必要,因为我从未尝试使用无效证书来命中服务器。您可以尝试使用此代码(不确定它是否适合您)将此代码放在Appdelegate.m中

@implementation NSURLRequest(DataController)
+ (BOOL)allowsAnyHTTPSCertificateForHost:(NSString *)host
{
    return YES;
}
@end