由于安全问题,无法打开 iOS 中的 HTTP 链接
Can't open HTTP links in iOS due to security issue
App Transport Security 已阻止明文 HTTP (http://) 资源加载,因为它不安全。可以通过您应用的 Info.plist 文件配置临时例外。
我已经尝试了图片上的解决方案,但仍然出现错误
import UIKit
class ViewController: UIViewController {
lazy var data = NSMutableData()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
let url = NSURL(string: "http://android.goidx.com/search")
let session = NSURLSession.sharedSession()
let task = session.dataTaskWithURL(url!, completionHandler: { (data, response, error) -> Void in
if error != nil {
print(error)
} else {
do {
let jsonResult = try NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.MutableContainers) as! NSDictionary
// print(jsonResult)
print(jsonResult[0])
} catch {
print("my error")
}
}
})
task.resume()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
您的 plist 文件应如下所示:
请注意,您的代码会使应用程序崩溃,因为您正在转换为一个字典,它应该是一个数组:
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
let url = NSURL(string: "http://android.goidx.com/search")
let session = NSURLSession.sharedSession()
let task = session.dataTaskWithURL(url!, completionHandler: { (data, response, error) -> Void in
if error != nil {
print(error)
} else {
do {
let jsonResult = try NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.MutableContainers) as! NSArray
// print(jsonResult)
print(jsonResult[0])
} catch {
print("my error")
}
}
})
task.resume()
}
然后一切都应该起作用 - 它对我有用。
App Transport Security 已阻止明文 HTTP (http://) 资源加载,因为它不安全。可以通过您应用的 Info.plist 文件配置临时例外。
我已经尝试了图片上的解决方案,但仍然出现错误
import UIKit
class ViewController: UIViewController {
lazy var data = NSMutableData()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
let url = NSURL(string: "http://android.goidx.com/search")
let session = NSURLSession.sharedSession()
let task = session.dataTaskWithURL(url!, completionHandler: { (data, response, error) -> Void in
if error != nil {
print(error)
} else {
do {
let jsonResult = try NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.MutableContainers) as! NSDictionary
// print(jsonResult)
print(jsonResult[0])
} catch {
print("my error")
}
}
})
task.resume()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
您的 plist 文件应如下所示:
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
let url = NSURL(string: "http://android.goidx.com/search")
let session = NSURLSession.sharedSession()
let task = session.dataTaskWithURL(url!, completionHandler: { (data, response, error) -> Void in
if error != nil {
print(error)
} else {
do {
let jsonResult = try NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.MutableContainers) as! NSArray
// print(jsonResult)
print(jsonResult[0])
} catch {
print("my error")
}
}
})
task.resume()
}
然后一切都应该起作用 - 它对我有用。