在我的iOS应用程序中,我需要发布多个数据包(作为不同的POST请求),目前我正在为每个请求创建不同的NSURL session ,并且我面临着一个问题,我有大约20个或更多的数据包在队列中,当我将所有这些都一一发布时,只有少数会通过,其余的我收到超时错误,
我的分析是HTTPMaximumConnectionsPerHost在 iOS 中默认为 4,即我们在一个 session 中只能同时有 4 个并行连接,其他请求将进入挂起状态,最终我收到超时错误
如何更好地处理这个问题?
如果我将 HTTPMaximumConnectionsPerHost 设置为 100 左右可以吗?
以下是用于发布数据的代码,我通过在 for 循环中调用以下函数来发布多个数据包
func send(_ request: URLRequest, completionHandler handler: handler?) {
let session = URLSession(configuration: URLSessionConfiguration.ephemeral)
let dataTask = session.dataTask(with: request as URLRequest) { (data, response, error) in
handler?(respHandler(inData: data as Data?, inResponse: response, inError: error as NSError?))
}
dataTask.resume()
session.finishTasksAndInvalidate()
}
最佳答案
编写一个简单的队列,在其中放置 URLSessionDataTask。 然后从队列中取出一项任务,调用resume方法,当任务完成时,对队列中的其他任务执行类似的操作。
关于ios - 发送多个 POST 的最佳做法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49252976/