我的 session.dataTaskWithRequest 方法没有返回任何数据

My session.dataTaskWithRequest method is not returning any data

我需要询问我们的 Api 来填充我们的主屏幕,所以我设置了一个名为 RestApiManager 的单独 class 并添加了以下代码:

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 作为简单测试显示,据我所知 returns 数据没有任何属性,因为我在我的浏览器中测试它,但每次我 运行 我的应用程序数据始终为零。

我做错了什么?

Since this is a Http request you need to add NSTransportSecurity in your info.plist. Hope you have done that.

如果你还没有这样做。访问这个

您还需要告知请求方法,即在您的情况下为 .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()

这对我有用,也可能对你有用。