我试图通过urlsession在swift3中点击Json请求。请求在10秒后没有超时
let request = NSMutableURLRequest(url: NSURL(string:url )! as URL,
cachePolicy: .useProtocolCachePolicy,
timeoutInterval: 10.0 )
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = RequestBody
let configuration =
URLSessionConfiguration.default
configuration.timeoutIntervalForRequest = 10
configuration.timeoutIntervalForResource = 10
let session = URLSession(configuration: configuration, delegate: self as? URLSessionDelegate, delegateQueue:OperationQueue.main)
let dataTask = session.dataTask(with: request as URLRequest) {
(data, response, error) in...
}
答案 0 :(得分:1)
问题是您从未真正启动网络请求。 您需要调用dataTask.resume()来实际启动请求。这需要在关闭后立即发生,请参阅下面的代码:
guard let url = URL(string: urlString) else { return }
let request = URLRequest(url: url, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0 )
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = RequestBody
let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest) {
(data, response, error) in...
}
dataTask.resume()