实战教程·元宇宙来了,准备好你的电子名片了吗?(五)(2)

简介: 实战教程·元宇宙来了,准备好你的电子名片了吗?(五)

URLSession实例:创建网络请求

创建好ViewModel模型视图后,我们来学习使用URLSession创建一个网络请求,在学习之前我们先来了解一个JSON文件的相关知识。

JSON是一种文件格式,和TXT文本一样,JSON使用带有固定格式的纯文本创建数据集。我们在搭建NewView添加身份卡视图时曾实现了新增身份卡的方法,即赋值给符合Model格式的变量,然后将Model格式的数据添加到个人主页的List中。

JSON文件则是包含了所有符合Model格式的数据的数组集合,我们可以创建好一个JSON文件及其内容,并通过网络请求将JSON文件请求到本地并解析加载到List中。

我们先来看看JSON文件的格式,如下图所示:

[  {    "platformIcon": "icon_juejin",    "title": "掘金签约作者",    "platformName": "稀土掘金技术社区",    "indexURL": "juejin.cn/user/3897092103223517"  },  {    "platformIcon": "icon_aliyun",    "title": "专家博主",    "platformName": "阿里云社区",    "indexURL": "developer.aliyun.com/profile/expert/376pj7xeqgqjy"  }]

上述JSON文件是通过一个在线JSON文件生成器(如npoint.io、fastmock.site等等)生成的准备代码,其中由“[]”包裹的是数组,而“{}”包裹的是数组中的对象,我们创建了2个对象,且数据模型格式都符合Model数据模型定义的参数。

通过第三方网站可以生成一个API接口的链接地址,我们声明一个常量参数存储它,如下代码所示:


let JsonURL = "https://api.npoint.io/c51968c99a2a087dac5e"

当然,我们也可以使用测试工具测试创建的JSON文件地址返回的结果是否正确,可以使用postman或者apifox测试软件进行测试,避免在项目开发时请求数据失败而导致开发卡点的问题,如下图所示:

image.png

上图中,使用的测试工具是apifox。使用方法也很简单,创建一个接口并将刚刚生成的地输入进去,并设置好对应的Query参数,点击运行,便可查看该接口返回状态及结果。熟练使用接口测试工具,可以帮助我们节省开发时间。

回归正题,我们在ViewModel视图模型中使用URLSession实例创建一个网络请求的方法,如下代码所示:


//网络请求
func getData() {
    let session = URLSession(configuration: .default)
    session.dataTask(with: URL(string: JsonURL)!) { data, _, _ in
        guard let jsonData = data else { return }
        do {
            let data = try JSONDecoder().decode([Model].self, from: jsonData)
            self.models = data
        } catch {
            print(error)
        }
    }
    .resume()
}

image.png

上述代码中,我们创建了一个网络请求方法getData,在方法里,我们使用URLSession创建网络请求,声明了常量session来使用URLSession API,然后加载的目标地址为声明的JsonURL,并执行下载数据,当下载成功后,将按照Model数据模型格式的数组加载到models数组里,若加载失败则打印错误信息。

然后我们可以在初始化时调用getData获得数据方法来加载数据,如下代码所示:


init(){
  getData()
}

image.png

相关文章
|
存储 算法 安全
第4章 数据库安全性——4.5 数据加密
第4章 数据库安全性——4.5 数据加密
|
iOS开发
SwiftUI极简教程13:NavigationView导航栏使用
SwiftUI极简教程13:NavigationView导航栏使用
2846 2
SwiftUI极简教程13:NavigationView导航栏使用
|
并行计算 Ubuntu Docker
apollo快速入门之安装指南
apollo快速入门之安装指南
661 3
|
前端开发 JavaScript Java
【实训项目】易行APP设计(c2c二手交易平台)
【实训项目】易行APP设计(c2c二手交易平台)
807 0
|
6月前
|
JSON 监控 API
B2B- 1688 商品详情 API 接口全解析调用
1688商品详情API(alibaba.item.get)是获取批发商品结构化数据的官方接口,涵盖商品基础信息、SKU、供应商、价格、起批量等核心字段。本文详解接口调用前提、签名规则、Python实战代码、限流处理及高频异常解决方案,助开发者快速落地批量选品、价格监控等场景。(239字)
|
存储 Prometheus 监控
在Linux中,如何进行系统资源的监控?
在Linux中,如何进行系统资源的监控?
|
数据采集 机器学习/深度学习 人工智能
大数据中的数据预处理:脏数据不清,算法徒劳!
大数据中的数据预处理:脏数据不清,算法徒劳!
1486 2
|
JSON 小程序 前端开发
微信小程序--》小程序全局配置和详解下拉刷新和上拉触底页面事件
⚓经过web前端开发的学习,相信大家对于前端开发有了一定深入的了解,今天我开设了微信小程序,主要想从移动端开发方向进一步发展,而对于我来说写移动端博文的第一站就是小程序开发,希望看到我文章的朋友能对你有所帮助。
1638 0
微信小程序--》小程序全局配置和详解下拉刷新和上拉触底页面事件
|
大数据 Python
Python 高级编程:深入探索高级代码实践
本文深入探讨了Python的四大高级特性:装饰器、生成器、上下文管理器及并发与并行编程。通过装饰器,我们能够在不改动原函数的基础上增添功能;生成器允许按需生成值,优化处理大数据;上下文管理器确保资源被妥善管理和释放;多线程等技术则助力高效完成并发任务。本文通过具体代码实例详细解析这些特性的应用方法,帮助读者提升Python编程水平。
830 5

热门文章

最新文章