6

I am trying to make an asynchronous call from Xcode 7 as follows and I end up seeing this error "NSURLErrorDomain" - code: 18446744073709550594 This code was fine when I used it in Xcode 6. Has anybody else seen this error?

var task = NSURLSession.sharedSession().dataTaskWithURL(url!, completionHandler: {
            (var data, response, error) -> Void in

            if(response != nil) {
                if (isJSONP){
                    if let prefixData = "(".dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false) {
                        var prefixRange = data!.rangeOfData(prefixData,options:NSDataSearchOptions(), range: NSMakeRange(0, data!.length))
                        if let suffixData = ")".dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false) {
                            var suffixRange = data!.rangeOfData(suffixData, options: NSDataSearchOptions(), range: NSMakeRange(0, data!.length))
                            var jsonRange = NSMakeRange(prefixRange.location + 1, data!.length - prefixRange.location - 3 - suffixRange.length)
                            data = data!.subdataWithRange(jsonRange)
                            json_str = NSString(data: data!, encoding: NSUTF8StringEncoding)!
                            //     println(json_str)
                        }

                    }

                }
                do {
                    let jsonData:AnyObject? = try NSJSONSerialization.JSONObjectWithData(data!, options: .MutableContainers)
                    callback(jsonData: jsonData)
                } catch {
                    print("JSONData not serialized properly or no data exists correctly")
                }

            }// else results not found properly/ trouble accessing server. please try again later
            else {
                var alert = UIAlertController(title: "Alert", message: "Trouble accessing server. Please try again later", preferredStyle: UIAlertControllerStyle.Alert)
                alert.addAction(UIAlertAction(title: "Close", style: UIAlertActionStyle.Default, handler: nil))
                self.presentViewController(alert, animated: true, completion: nil)
            }


        })

        task.resume()

This is the code I have used. I am neither seeing data nor a response. I tried to hit the same url using other applications and it is responding back properly. I do not see any documentation on this anywhere so posting it here. Any help would be appreciated.

Thank you

Nikhil

Katakam Nikhil
  • 1,375
  • 4
  • 14
  • 22

4 Answers4

4

@Zeuz10 You are right. The security in ios9 and later does not allow any http calls to be sent. To get around the problem, you need to update your Info.plist The instructions are given in this link

http://ste.vn/2015/06/10/configuring-app-transport-security-ios-9-osx-10-11/

Thank you Zeuz10 for giving me the necessary inputs

Katakam Nikhil
  • 1,375
  • 4
  • 14
  • 22
3

Seems to be a bug, I work around it by keeping under https all requests, hits ios9.0 and 9.0.1 as far as I can tell although you need to allow the url exception as apple documentation suggest in the Info.plist

ref. https://developer.apple.com/library/prerelease/ios/technotes/App-Transport-Security-Technote/

Zeuz10
  • 46
  • 1
  • although you can check in you debugging in the second line:var task = NSURLSession.sharedSession().dataTaskWithURL(url!, completionHandler: { (var data, response, error) -> Void in --- the data is nil----- there for in the line -> let jsonData:AnyObject? = try NSJSONSerialization.JSONObjectWithData(data!, options: .MutableContainers) the data! will throw the exception. good luck – Zeuz10 Sep 24 '15 at 17:22
0

this is just -999 , you can deal it with NSURLCancel

sunshine
  • 81
  • 1
  • 6
0

I got this exact error code when trying to connect to a server with ancient TLS support. Workaround: add NSExceptionRequiresForwardSecrecy to the app's Info.plist:

<key>NSExceptionDomains</key> 
<dict>
  <key>MY_SERVER_DOMAIN</key>
  <dict>
    <key>NSExceptionRequiresForwardSecrecy</key>
    <false/>
  </dict>
  <!-- any other exceptions you may have -->
</dict>
fagerbua
  • 406
  • 2
  • 9