2016-01-22 58 views
-1

请看看下面的代码:这里如何使用NSURLConnection?

override func viewDidLoad() { 
    super.viewDidLoad() 

    let url2 = NSURL (string: "http://leinelab.net/api/spaceapi.json") 
    let requestObj = NSURLRequest(URL: url2!); 
    let response: AutoreleasingUnsafeMutablePointer<NSURLResponse?> = nil; 
    let responseData = (try? NSURLConnection.sendSynchronousRequest(requestObj, returningResponse: response)) as NSData? 

    let datastring = NSString(data: responseData!, encoding: NSUTF8StringEncoding) 
    let datastring2 = String(datastring!) 

    let text = ":true}" 
    if datastring2.rangeOfString(text) != nil 
    . 
    . 
    . 

某处我有NSURLConnection的工作访问自签名证书的网站,但我不知道怎么办。代码在Xcode 6下工作,在升级到Xcode 7后没有。

编辑:

这是错误消息:

2016-01-22 22:45:56.678 LL-Test[3968:147205] App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app's Info.plist file. fatal error: unexpectedly found nil while unwrapping an Optional value (lldb) 
+0

该应用是否崩溃或它无法编译?你有没有收到任何错误讯息? 顺便说一句:'NSURLConnection'已在iOS 9中弃用。您应该使用'NSURLSession' – FelixSFD

+0

请您编辑您的问题,以便您的代码在代码块内;它使问题更容易阅读。另外,还可以在问题中增加一些关于什么不起作用的细节;它是一个崩溃?有没有错误信息?代码是否拒绝编译?详情请。 –

+1

建设工程,没有崩溃。该应用程序根本无法启动。这是错误消息:2016-01-22 22:45:56.678 LL-Test [3968:147205]由于应用传输安全性不安全,它已阻止明文HTTP(http://)资源加载。临时例外可以通过您的应用程序的Info.plist文件进行配置。 致命错误:意外地发现零,而解包一个可选值 (lldb) – Tapnerd

回答

2

你如果要使用HTTP,你必须在你的info.plist例外配置为使用HTTPS,因为iOS的9。 由于此行为,datastringdatastring2nil,导致崩溃。

要配置“应用程序传输安全” -exceptions,在苹果开发者论坛上看到这篇文章:https://forums.developer.apple.com/thread/3544

+0

HTTPS也不起作用。原因似乎是自签名证书。但我想我在论坛帖子中发现了一些东西。非常感谢你! – Tapnerd