无法将类型 '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 应该也突出显示这一点。
对于 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 应该也突出显示这一点。