swift网络请求 数据解析 图片显示 模型转换

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: Alamofire :swift版本的网络请求sdk,是AFNetworking研发团队研发的swift版网络请求工具类SwiftyJSON:当然就是用来解析json数据的咯Kingfisher: 是用来显示网络图片的与oc中的SDWebImage类似HandyJSON: 可将json转模型

分别是:


Alamofire  :swift版本的网络请求sdk,是AFNetworking研发团队研发的swift版网络请求工具类


SwiftyJSON:当然就是用来解析json数据的咯


Kingfisher: 是用来显示网络图片的与oc中的SDWebImage类似


HandyJSON: 可将json转模型


上代码:


实现的效果图:


微信图片_20221017212618.png

image


Alamofire的使用:


get请求


func getRequest(urlString:String, params :Parameters? =nil, success :@escaping(_response : [String:AnyObject])->(), failture :@escaping(_error :Error)->()) { 
        //使用Alamofire进行网络请求时,调用该方法的参数都是通过getRequest(urlString, params, success :, failture :)传入的,而success传入的其实是一个接受          [String : AnyObject]类型 返回void类型的函数
         Alamofire.request(urlString, method: .get, parameters: params)
             .responseJSON{ (response)in/*这里使用了闭包*/
                 //当请求后response是我们自定义的,这个变量用于接受服务器响应的信息
            //使用switch判断请求是否成功,也就是response的result
                 switchresponse.result{
                 case.success(letvalue):
                     //当响应成功是,使用临时变量value接受服务器返回的信息并判断是否为[String: AnyObject]类型 如果是那么将其传给其定义方法中的success
                     //                    if let value = response.result.value as? [String: AnyObject] {
                    success(valueas! [String:AnyObject])
                    //                    }
 //                    let json = JSON(value)
 //                    print(json)
                 case.failure(leterror):
                     failture(error)
                     print("error:\(error)")
                 }
         }
     }


post请求


funcpostRequest(urlString :String, params :Parameters? =nil, success :@escaping(_response : [String:AnyObject])->(), failture :@escaping(_error :Error)->()) {
         Alamofire.request(urlString, method:HTTPMethod.post, parameters: params).responseJSON{ (response)in
            switchresponse.result{
             case.success:
                 ifletvalue = response.result.valueas? [String:AnyObject] {
                     success(value)
                 }
             case.failure(leterror):
                 failture(error)
                 print("error:\(error)")
             }
        }
     }


上传图片或文件


func upLoadImageRequest(urlString :String, params:[String:String], data: [Data], name: [String],success :@escaping(_response : [String:AnyObject])->(), failture :@escaping(_error :Error)->()){
         let headers = ["content-type":"multipart/form-data"]
         Alamofire.upload(
             multipartFormData: { multipartFormDatain
                 //666多张图片上传
 //                拼接参数
                 for(key,_)in params {
                     letvalue = params[key]
                     multipartFormData.append((value?.data(using:String.Encoding.utf8)!)!, withName: key)
                 }
                 for I in 0..<data.count{
 //          在线文件类型对照表http://tool.oschina.net/commons
                     multipartFormData.append(data[i], withName:"file", fileName: name[i], mimeType:"image/jpg")
                 }
         },to: urlString,
             headers: headers,
             encodingCompletion: { encodingResultin
                 switchencodingResult {
                 case.success(letupload,_,_):
                     upload.responseJSON{ responsein
                         ifletvalue = response.result.valueas? [String:AnyObject]{
                             success(value)
                         }
                     }
                 case.failure(letencodingError):
                      print(encodingError)
                     failture(encodingError)
                 }
         }
         )
     }


SwiftyJSON使用:


JSON(json)使用到了Swiftjson


微信图片_20221017212622.png

image


Kingfisher的简单使用

cell.iconImageView.kf.setImage(with:URL(string: model.iconUrl))*


HandyJSON的使用


创建结构体模型


微信图片_20221017212626.png

image.png


给模型赋值


//解析数据
            let json = JSON(respont)
            print(json)
            if let advertList = JSONDeserializer<HomeModel>.deserializeFrom(json: json.description) { // 从字符串转换为对象实例
            }


相关文章
|
4天前
|
监控 安全 网络安全
深入解析PDCERF:网络安全应急响应的六阶段方法
PDCERF是网络安全应急响应的六阶段方法,涵盖准备、检测、抑制、根除、恢复和跟进。本文详细解析各阶段目标与操作步骤,并附图例,助读者理解与应用,提升组织应对安全事件的能力。
120 89
|
7天前
|
JSON 前端开发 搜索推荐
关于商品详情 API 接口 JSON 格式返回数据解析的示例
本文介绍商品详情API接口返回的JSON数据解析。最外层为`product`对象,包含商品基本信息(如id、name、price)、分类信息(category)、图片(images)、属性(attributes)、用户评价(reviews)、库存(stock)和卖家信息(seller)。每个字段详细描述了商品的不同方面,帮助开发者准确提取和展示数据。具体结构和字段含义需结合实际业务需求和API文档理解。
|
5天前
|
存储 分布式计算 Hadoop
基于Java的Hadoop文件处理系统:高效分布式数据解析与存储
本文介绍了如何借鉴Hadoop的设计思想,使用Java实现其核心功能MapReduce,解决海量数据处理问题。通过类比图书馆管理系统,详细解释了Hadoop的两大组件:HDFS(分布式文件系统)和MapReduce(分布式计算模型)。具体实现了单词统计任务,并扩展支持CSV和JSON格式的数据解析。为了提升性能,引入了Combiner减少中间数据传输,以及自定义Partitioner解决数据倾斜问题。最后总结了Hadoop在大数据处理中的重要性,鼓励Java开发者学习Hadoop以拓展技术边界。
28 7
|
11天前
|
缓存 负载均衡 安全
Swift中的网络代理设置与数据传输
Swift中的网络代理设置与数据传输
|
1月前
|
机器学习/深度学习 人工智能 算法
深入解析图神经网络:Graph Transformer的算法基础与工程实践
Graph Transformer是一种结合了Transformer自注意力机制与图神经网络(GNNs)特点的神经网络模型,专为处理图结构数据而设计。它通过改进的数据表示方法、自注意力机制、拉普拉斯位置编码、消息传递与聚合机制等核心技术,实现了对图中节点间关系信息的高效处理及长程依赖关系的捕捉,显著提升了图相关任务的性能。本文详细解析了Graph Transformer的技术原理、实现细节及应用场景,并通过图书推荐系统的实例,展示了其在实际问题解决中的强大能力。
219 30
|
27天前
|
网络协议
TCP报文格式全解析:网络小白变高手的必读指南
本文深入解析TCP报文格式,涵盖源端口、目的端口、序号、确认序号、首部长度、标志字段、窗口大小、检验和、紧急指针及选项字段。每个字段的作用和意义详尽说明,帮助理解TCP协议如何确保可靠的数据传输,是互联网通信的基石。通过学习这些内容,读者可以更好地掌握TCP的工作原理及其在网络中的应用。
|
27天前
|
存储 监控 网络协议
一次读懂网络分层:应用层到物理层全解析
网络模型分为五层结构,从应用层到物理层逐层解析。应用层提供HTTP、SMTP、DNS等常见协议;传输层通过TCP和UDP确保数据可靠或高效传输;网络层利用IP和路由器实现跨网数据包路由;数据链路层通过MAC地址管理局域网设备;物理层负责比特流的物理传输。各层协同工作,使网络通信得以实现。
|
27天前
|
网络协议 安全 网络安全
探索网络模型与协议:从OSI到HTTPs的原理解析
OSI七层网络模型和TCP/IP四层模型是理解和设计计算机网络的框架。OSI模型包括物理层、数据链路层、网络层、传输层、会话层、表示层和应用层,而TCP/IP模型则简化为链路层、网络层、传输层和 HTTPS协议基于HTTP并通过TLS/SSL加密数据,确保安全传输。其连接过程涉及TCP三次握手、SSL证书验证、对称密钥交换等步骤,以保障通信的安全性和完整性。数字信封技术使用非对称加密和数字证书确保数据的机密性和身份认证。 浏览器通过Https访问网站的过程包括输入网址、DNS解析、建立TCP连接、发送HTTPS请求、接收响应、验证证书和解析网页内容等步骤,确保用户与服务器之间的安全通信。
102 1
|
1月前
|
监控 安全 BI
什么是零信任模型?如何实施以保证网络安全?
随着数字化转型,网络边界不断变化,组织需采用新的安全方法。零信任基于“永不信任,永远验证”原则,强调无论内外部,任何用户、设备或网络都不可信任。该模型包括微分段、多因素身份验证、单点登录、最小特权原则、持续监控和审核用户活动、监控设备等核心准则,以实现强大的网络安全态势。
130 2
|
1月前
|
XML JSON JavaScript
HttpGet 请求的响应处理:获取和解析数据
HttpGet 请求的响应处理:获取和解析数据

热门文章

最新文章

推荐镜像

更多