NSURLConnection finished with error - code -1002

2019-03-18 02:34发布

问题:

Friends i have simple audio player (MPMoviePlayerController) which can play audio stream. On iOS 11 i have very interessing trouble, thousand time i have error and my stream was stopped:

NSURLConnection finished with error - code -1002

I paste this code (this code i saw on stackowerflow) but it's not help to me:

<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>

Maybe you know best solution?

回答1:

That error should not be related to using HTTP instead of HTTPS. App Transport Security failures return error code -1022.

The error code -1002 indicates an invalid URL. Perhaps your HTTP live streaming playlist file contains a structurally invalid URL (e.g. missing scheme, a scheme other than http/https, etc.)?

For additional debugging, set this environment variable

CFNETWORK_DIAGNOSTICS=1

in your Xcode project and re-run the app. Once you know what URL is failing, the problem will likely become more obvious.

If it isn't, file a bug.



回答2:

First thing you must use secure server (server with valid certificate). I'm not sure either it is necessary or not because i never tried to hit server with invalid certificate. You can try this code (not sure it will work for you or not) put this code in Appdelegate.m

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