什么是发送多个POST的最佳做法

时间:2018-03-13 09:50:16

标签: ios swift post nsurlsession

在我的iOS应用程序中,我要求发布多个数据包(作为不同的POST请求),目前我正在为每个请求创建不同的NSURL会话,而且我遇到的问题是我有20个或更多的数据包在队列中,当我逐一发布所有这些内容时,只有少数人正在发布,其余的我正在超时错误

我的分析是,因为HTTPMaximumConnectionsPerHost默认情况下在iOS中是4,即我们在一个会话中只能同时拥有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()
    }

1 个答案:

答案 0 :(得分:0)

编写一个简单的队列,您将放置URLSessionDataTask。 然后从队列中取一个任务,调用resume方法,当任务完成时,对队列中的其他任务执行类似的操作。