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

简介: 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) { // 从字符串转换为对象实例
            }


相关文章
|
5月前
|
机器学习/深度学习 PyTorch TensorFlow
卷积神经网络深度解析:从基础原理到实战应用的完整指南
蒋星熠Jaxonic,深度学习探索者。深耕TensorFlow与PyTorch,分享框架对比、性能优化与实战经验,助力技术进阶。
|
6月前
|
机器学习/深度学习 算法 调度
14种智能算法优化BP神经网络(14种方法)实现数据预测分类研究(Matlab代码实现)
14种智能算法优化BP神经网络(14种方法)实现数据预测分类研究(Matlab代码实现)
506 0
|
7月前
|
机器学习/深度学习 数据采集 传感器
【故障诊断】基于matlab BP神经网络电机数据特征提取与故障诊断研究(Matlab代码实现)
【故障诊断】基于matlab BP神经网络电机数据特征提取与故障诊断研究(Matlab代码实现)
255 0
|
8月前
|
数据采集 存储 算法
MyEMS 开源能源管理系统:基于 4G 无线传感网络的能源数据闭环管理方案
MyEMS 是开源能源管理领域的标杆解决方案,采用 Python、Django 与 React 技术栈,具备模块化架构与跨平台兼容性。系统涵盖能源数据治理、设备管理、工单流转与智能控制四大核心功能,结合高精度 4G 无线计量仪表,实现高效数据采集与边缘计算。方案部署灵活、安全性高,助力企业实现能源数字化与碳减排目标。
273 0
|
9月前
|
Python
LBA-ECO CD-32 通量塔网络数据汇编,巴西亚马逊:1999-2006,V2
该数据集汇集了1999年至2006年间巴西亚马逊地区九座观测塔的碳和能量通量、气象、辐射等多类数据,涵盖小时至月度时间步长。作为第二版汇编,数据经过协调与质量控制,扩展了第一版内容,并新增生态系统呼吸等相关计算数据,支持综合研究与模型合成。数据以36个制表符分隔文本文件形式提供,配套PDF说明文件,适用于生态与气候研究。引用来源为Restrepo-Coupe等人(2021)。
434 1
|
6月前
|
机器学习/深度学习 人工智能 算法
卷积神经网络深度解析:从基础原理到实战应用的完整指南
蒋星熠Jaxonic带你深入卷积神经网络(CNN)核心技术,从生物启发到数学原理,详解ResNet、注意力机制与模型优化,探索视觉智能的演进之路。
610 11
|
5月前
|
机器学习/深度学习 人工智能 算法
【基于TTNRBO优化DBN回归预测】基于瞬态三角牛顿-拉夫逊优化算法(TTNRBO)优化深度信念网络(DBN)数据回归预测研究(Matlab代码实现)
【基于TTNRBO优化DBN回归预测】基于瞬态三角牛顿-拉夫逊优化算法(TTNRBO)优化深度信念网络(DBN)数据回归预测研究(Matlab代码实现)
256 0
|
6月前
|
安全 网络性能优化 网络虚拟化
网络交换机分类与功能解析
接入交换机(ASW)连接终端设备,提供高密度端口与基础安全策略;二层交换机(LSW)基于MAC地址转发数据,构成局域网基础;汇聚交换机(DSW)聚合流量并实施VLAN路由、QoS等高级策略;核心交换机(CSW)作为网络骨干,具备高性能、高可靠性的高速转发能力;中间交换机(ISW)可指汇聚层设备或刀片服务器内交换模块。典型流量路径为:终端→ASW→DSW/ISW→CSW,分层架构提升网络扩展性与管理效率。(238字)
1609 0
|
6月前
|
机器学习/深度学习 数据采集 运维
改进的遗传算法优化的BP神经网络用于电厂数据的异常检测和故障诊断
改进的遗传算法优化的BP神经网络用于电厂数据的异常检测和故障诊断
|
7月前
|
XML JSON JavaScript
从解决跨域CSOR衍生知识 Network 网络请求深度解析:从快递系统到请求王国-优雅草卓伊凡
从解决跨域CSOR衍生知识 Network 网络请求深度解析:从快递系统到请求王国-优雅草卓伊凡
179 0
从解决跨域CSOR衍生知识 Network 网络请求深度解析:从快递系统到请求王国-优雅草卓伊凡

推荐镜像

更多
  • DNS