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

本文涉及的产品
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
简介: 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) { // 从字符串转换为对象实例
            }


相关文章
|
1天前
|
机器学习/深度学习 人工智能 算法
鸟类识别系统Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+ResNet50算法模型+图像识别
鸟类识别系统。本系统采用Python作为主要开发语言,通过使用加利福利亚大学开源的200种鸟类图像作为数据集。使用TensorFlow搭建ResNet50卷积神经网络算法模型,然后进行模型的迭代训练,得到一个识别精度较高的模型,然后在保存为本地的H5格式文件。在使用Django开发Web网页端操作界面,实现用户上传一张鸟类图像,识别其名称。
30 11
鸟类识别系统Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+ResNet50算法模型+图像识别
|
1天前
|
机器学习/深度学习 存储 人工智能
让模型评估模型:构建双代理RAG评估系统的步骤解析
在当前大语言模型(LLM)应用开发中,评估模型输出的准确性成为关键问题。本文介绍了一个基于双代理的RAG(检索增强生成)评估系统,使用生成代理和反馈代理对输出进行评估。文中详细描述了系统的构建过程,并展示了基于四种提示工程技术(ReAct、思维链、自一致性和角色提示)的不同结果。实验结果显示,ReAct和思维链技术表现相似,自一致性技术则呈现相反结果,角色提示技术最为不稳定。研究强调了多角度评估的重要性,并提供了系统实现的详细代码。
21 10
让模型评估模型:构建双代理RAG评估系统的步骤解析
|
3天前
|
网络协议 网络虚拟化
接收网络包的过程——从硬件网卡解析到IP
【9月更文挑战第18天】这段内容详细描述了网络包接收过程中机制。当网络包触发中断后,内核处理完这批网络包,会进入主动轮询模式,持续处理后续到来的包,直至处理间隙返回其他任务,从而减少中断次数,提高处理效率。此机制涉及网卡驱动初始化时注册轮询函数,通过软中断触发后续处理,并逐步深入内核网络协议栈,最终到达TCP层。整个接收流程分为多个层次,包括DMA技术存入Ring Buffer、中断通知CPU、软中断处理、以及进入内核网络协议栈等多个步骤。
|
19天前
|
网络协议 数据安全/隐私保护 网络架构
计算机网络模型
【9月更文挑战第2天】
44 24
|
3天前
|
数据采集 存储 JSON
从零到一构建网络爬虫帝国:HTTP协议+Python requests库深度解析
在网络数据的海洋中,网络爬虫遵循HTTP协议,穿梭于互联网各处,收集宝贵信息。本文将从零开始,使用Python的requests库,深入解析HTTP协议,助你构建自己的网络爬虫帝国。首先介绍HTTP协议基础,包括请求与响应结构;然后详细介绍requests库的安装与使用,演示如何发送GET和POST请求并处理响应;最后概述爬虫构建流程及挑战,帮助你逐步掌握核心技术,畅游数据海洋。
18 3
|
3天前
|
监控 安全 网络安全
网络安全的盾与剑:漏洞防御与加密技术解析
【9月更文挑战第17天】在数字时代的浪潮中,网络安全成为保护数据和隐私的关键防线。本文深入浅出地探讨了网络安全的两大支柱:漏洞防御和加密技术,旨在提升公众的安全意识并分享防护策略。我们将从基础概念出发,逐步深入到技术细节,不仅阐释原理,还提供实际案例分析,帮助读者构建起一道坚固的数字防御墙。
19 3
|
8天前
|
存储 安全 算法
网络安全与信息安全的全方位解析
在现代社会,随着信息技术的飞速发展,网络安全和信息安全问题日益凸显。本文将通过浅显易懂的语言和具体的实例,全面解析网络安全漏洞、加密技术以及安全意识等方面的知识,帮助读者提升对网络安全与信息安全的认知和应对能力。
|
10天前
|
机器学习/深度学习 人工智能 TensorFlow
深入骨髓的解析:Python中神经网络如何学会‘思考’,解锁AI新纪元
【9月更文挑战第11天】随着科技的发展,人工智能(AI)成为推动社会进步的关键力量,而神经网络作为AI的核心,正以其强大的学习和模式识别能力开启AI新纪元。本文将探讨Python中神经网络的工作原理,并通过示例代码展示其“思考”过程。神经网络模仿生物神经系统,通过加权连接传递信息并优化输出。Python凭借其丰富的科学计算库如TensorFlow和PyTorch,成为神经网络研究的首选语言。
12 1
|
11天前
|
存储 SQL 安全
网络安全的盾牌:漏洞防御与加密技术解析
【9月更文挑战第9天】在数字时代,网络安全的重要性日益凸显,它不仅是保护个人隐私和数据安全的屏障,也是维护社会稳定和经济繁荣的关键。本文将深入探讨网络安全中的漏洞防御策略、加密技术的运用以及提升公众安全意识的必要性,旨在通过知识分享,增强大众对网络威胁的防范能力,共同构建更安全的网络环境。
|
11天前
|
机器学习/深度学习 人工智能 自然语言处理
机器学习模型之深度神经网络的特点
深度神经网络(Deep Neural Networks, DNNs)是一类机器学习模型,通过多个层级(层)的神经元来模拟人脑的工作方式,从而实现复杂的数据处理和模式识别任务。
14 1

推荐镜像

更多