You can get this error if request is NSURLRequest and not URLRequest .
let url = URL(string: urlString)! let request = URLRequest(url: url) let task = URLSession.shared.dataTask(with: request) { data, response, error in guard let data = data, error == nil else { print("error=\(error)") return } print("response = \(response)") let responseString = String(data: data, encoding: .utf8) print("responseString = \(responseString)") } task.resume()
Or, if you mutate URLRequest , use var :
let url = URL(string: urlString)! var request = URLRequest(url: url) request.httpMethod = "POST" request.httpBody = ... let task = URLSession.shared.dataTask(with: request) { data, response, error in guard let data = data, error == nil else { print("error=\(error)") return } print("response = \(response)") let responseString = String(data: data, encoding: .utf8) print("responseString = \(responseString)") } task.resume()
Also, note: I replaced NSString with String .
source share