我需要询问我们的Api以填充我们的主屏幕,因此我设置了一个名为RestApiManager
的单独类,并添加了以下代码:
import UIKit
class RestApiManager: NSObject {
static let sharedInstance = RestApiManager()
let baseURL = "http://api.randomuser.me/"
func getData() {
let request = NSMutableURLRequest(URL: NSURL(string: baseURL)!)
let session = NSURLSession.sharedSession()
let task = session.dataTaskWithRequest(request, completionHandler: {data, response, error -> Void in
if data != nil {
do {
let json = try NSJSONSerialization.JSONObjectWithData(data!, options: .MutableLeaves) as? NSDictionary //:JSON = JSON(data: jsonData)
}catch _ as NSError
{
}
}
})
task.resume()
}
}
我使用的url显示为一个简单的测试,因为我知道它返回没有任何属性的数据,因为我在浏览器中测试它但每次运行我的应用程序时数据总是为零。
我做错了什么?
答案 0 :(得分:1)
由于这是一个Http请求,您需要添加NSTransportSecurity 你的info.plist。希望你已经做到了。
如果你还没有这样做。访问此Link
您还需要告诉请求方法,即.GET。
let headers = ["cache-control": "no-cache"]
var request = NSMutableURLRequest(URL: NSURL(string: "http://api.randomuser.me/")!,
cachePolicy: .UseProtocolCachePolicy,
timeoutInterval: 10.0)
request.HTTPMethod = "GET"
request.allHTTPHeaderFields = headers
let session = NSURLSession.sharedSession()
let dataTask = session.dataTaskWithRequest(request, completionHandler: { (data, response, error) -> Void in
if (error != nil) {
println(error)
} else {
let httpResponse = response as? NSHTTPURLResponse
println(httpResponse)
}
})
dataTask.resume()
这对我有用,也可能适合你。