迅捷网络层-更新

首先,我要对拍手的每个人表示感谢,对我以前的文章发表评论:“在Swift中编写网络层:面向协议的方法”。 经过评论中的反馈和更多研究后,我认为解决本文中建议的改进将是有益的。

我们可以对项目进行两个简单的修改,以改善其功能。

在我们先前的URLSession实现中,我们使用了URLSession.shared 。 此代码有效,但不是最佳方法。 每次发出请求时,我们都会实例化一个新会话。 建议有一个URLSession和多个任务。

以前的实现。要解决此问题,我们将在使用默认配置创建路由器时实例化会话。 您可以使用3种不同类型的配置来创建会话。 我建议您从Raywenderlich.com阅读本文。

使用此代码,我们可以创建一个会话并执行多个任务。 这里的另一个优势是,我们可以调整路由器初始化代码以具有会话参数,通过使用模拟,我们将使编写测试变得更加容易。

为此,我要感谢Koen Punt和ilya stroganov的评论。 我不知道URLQueryItem已经编码了我们的参数。

这是一个快速更新,只需删除 .addingPercentEncoding(withAllowedCharacters:.urlHostAllowed)。 并做了。

我永远不会表现出我所了解的一切。 我在Medium上写作时正在学习所有这些内容。 有时候,我会引用自己的帖子来提醒如何实现目标。 具有终身学习者的态度将使人成长。 我喜欢分享自己的发现,并希望能在此期间帮助某人。

话虽如此,如果有任何主题,您可能希望我发表评论,请在评论中提及。 再次感谢您的所有👏🏾。 在Swift⚡️中继续学习和思考。