无法将类型 'NSURL' 的值转换为预期的参数类型 'NSURLRequest'

Cannot convert value of type 'NSURL' to expected argument type 'NSURLRequest'

对于 POST 请求,我使用此代码:

private func post(url: String, params: [String: AnyObject], headers: [String: AnyObject]) {

   let url = NSURL(string: apiUrl)!
   let session = NSURLSession.sharedSession()
   let request = NSMutableURLRequest(URL: url)
   request.HTTPMethod = "POST"
   request.setValue("application/json; charset=utf-8", forHTTPHeaderField:  "Content-Type")
   request.addValue("application/json", forHTTPHeaderField: "Application")

   do {
      request.HTTPBody = try NSJSONSerialization.dataWithJSONObject(params, options: NSJSONWritingOptions())
   } catch {            
      print("error")

      //POST with completionHandler
      var task = session.dataTaskWithRequest(url, completionHandler: { (data, response, error) -> Void in        
        print(data)           
      })        
   }
}

并且在以 var task = ... 开头的行我得到这个错误:Cannot convert value of type 'NSURL' to expected argument type 'NSURLRequest'

更改此行:

var task = session.dataTaskWithRequest(url, completionHandler: { (data, response, error) -> Void in

并传入请求...不是 url:

var task = session.dataTaskWithRequest(request, completionHandler: { (data, response, error) -> Void in

始终阅读您正在调用的方法名称,这是专门创建一个 dataTaskWith REQUEST,xcode 应该也突出显示这一点。

NSURLSession Documentation