处理iOS应用程序的长网络请求



我想在从服务器获取数据的问题时使我的应用更具响应速度。

现在,我正在使用可及性库来检查对Internet的访问,但我认为这还不够。有时,服务器可以长时间处理请求,甚至无法响应。

在网络请求花费太多时间时,我想通知用户出现问题,而不会显示无尽的活动指标。

从哪里开始?什么是最佳实践?

为urlrequest设置自定义超时间隔。理想情况下应该是 取决于您期望服务器发送的数据量以及 内部查询服务器可以获取数据并最终转储 与您使用的API相同。

尝试使用Postman了解服务器响应时间和您收到的数据。基于该估算的估计,您的请求是合理的超时间隔。

let request = NSMutableURLRequest()
request.setValue("application/json", forHTTPHeaderField: "Accept")
request.timeoutInterval = 20 // this is what you need to set.

您可以通过一些消息向用户提供消息或响应。就连接性而言,您可以查看YouTube应用程序,尝试将设备放在飞行模式下,并且您会看到带有连接状态的条带,而无需侵入用户体验。

首先,我建议在检查Internet之前添加加载,并在您从Urlrequest收到任何inthers时删除加载。

第二,您可以为urlsessionconfiguration设置自定义超时间隔,以免挂在那里

fyi:https://developer.apple.com/documentation/foundation/urlsessionconconfiguration/1408259 tope topeTimeoutoutInterValforreRequest

最新更新