首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSURLConnection已完成,错误代码为-1002

NSURLConnection已完成,错误代码为-1002
EN

Stack Overflow用户
提问于 2017-10-12 18:44:14
回答 3查看 55.9K关注 0票数 23

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

代码语言:javascript
复制
NSURLConnection finished with error - code -1002

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

代码语言:javascript
复制
<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>

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-10-15 03:22:37

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

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

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

代码语言:javascript
复制
CFNETWORK_DIAGNOSTICS=1

在您的Xcode项目中,重新运行应用程序。一旦您知道哪个URL失败了,问题可能会变得更加明显。

如果不是,就提交一个bug。

票数 36
EN

Stack Overflow用户

发布于 2019-12-04 18:30:05

如果您的URL包含空格,则会出现此问题。我通过用"%20“替换空格解决了这个问题,这样你就可以安全地使用它了。替换空格的目标C代码如下。

代码语言:javascript
复制
your_url_variable_name = [your_url_variable_name stringByReplacingOccurrencesOfString:@" " withString:@"%20"];
票数 1
EN

Stack Overflow用户

发布于 2017-10-12 19:05:43

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

代码语言:javascript
复制
@implementation NSURLRequest(DataController)
+ (BOOL)allowsAnyHTTPSCertificateForHost:(NSString *)host
{
    return YES;
}
@end
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46707634

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档