封装Alamofire 网络数据请求

Swift Alamofire5 数据请求,数组参数,多图上传 Swift Alamofire5数据访问封装,数组参数,多图上传 // // NetHelper.swift // ZXCenter // // Created by Seasons on 2019/5/17. // Copyright © 2019 zhongxiao. All rights reserved. // import Foundation import Alamofire typealias SuccessBlock = ([String:Any]) -> Void ty 阅读详情

从OC转到swift后,由AFNwtWorking转为Alamofire做网络请求,下面我单独写了一个单例请求类

import UIKit
import Alamofire
import SwiftyJSON
let BaseUrl = "https://httpbin.org/get"

private let NetWorkRequestShareInstance = NetWorkRequest()

class NetWorkRequest{
    class var sharedInstance:NetWorkRequest {
        return NetWorkRequestShareInstance
    }
}

extension NetWorkRequest{
    func getRequest(UrlString:String,params:[String:Any]?,success:@escaping(_ response:[String:AnyObject])->(),failure:@escaping(_ error:Error)->()) {
            let PathUrl = BaseUrl+UrlString
        Alamofire.request(PathUrl, method: .get, parameters: params).responseJSON { (response) in
            switch response.result{
            case .success(let value):
                 //当响应成功是,使用临时变量value接受服务器返回的信息并判断是否为[String: AnyObject]类型 如果是那么将其传给其定义方法中的success
                if let value = response.result.value as? [String:AnyObject]{

                    success(value)
                }
                let json = JSON(value)
                print(json)

            case .failure(let error):
                failure(error)
                print(error)
            }

        }
    }


    //paramer mark===post请求 =
    func postRequest(UrlString:String,paramer:[String:Any],success:@escaping(_ response:[String:AnyObject])->(),failure:@escaping(_ error:Error)->()){
        let PathUrl = BaseUrl+UrlString
        Alamofire.request(PathUrl, method: HTTPMethod.post, parameters: paramer).responseJSON { (response) in
            switch response.result{
            case .success:
                if let value = response.result.value as? [String:AnyObject]{
                    success(value)
                }
            case .failure(let error):
                failure(error)
            }
        }
    }


    ///上传图片

    func upLoadImageRequest(UrlString:String,params:[String:String],data:[Data],name:[String],success:@escaping(_ response:[String:AnyObject])->(),failure:@escaping(_ error:Error)->()){
        let headers = ["content-type":"multipart/form-data"]
       let PathUrl = BaseUrl+UrlString
        Alamofire.upload(multipartFormData: { (multipartforData) in
            let flag = params["flag"]
            let userId = params["userId"]
            multipartforData.append((flag?.data(using: String.Encoding.utf8))!, withName: "flag")
            multipartforData.append((userId?.data(using: String.Encoding.utf8))!, withName: "userId")
            for i in 0..<data.count{
                multipartforData.append(data[i], withName: "appPhoto", fileName: name[i], mimeType: "image/png")
            }

        }, to: PathUrl,
           headers: headers,
           encodingCompletion: { encodingResult in
            switch encodingResult {
            case .success(let upload, _, _):
                upload.responseJSON { response in
                    if let value = response.result.value as? [String: AnyObject]{
                        success(value)
                        let json = JSON(value)
                        print(json)
                    }
                }
            case .failure(let encodingError):
                print(encodingError)

            }
        }
    )
}
}

外部调用网络请求示例,

   NetWorkRequest.sharedInstance.getRequest(UrlString:BaseUrl, params:nil, success: { (response) in
            print(response)
        }) { (error) in

        }
swift中网络请求库的封装(Alamofire+HandyJSON) swift中网络请求库的封装(Alamofire+HandyJSON) 我们用swift语言来写iOS的程序,会用Alamofire+HandyJSON来取代AFNetworking+MJExtension,怎么样封装成正确姿势来发起网络请求,我个人封装一个,有待优化的地方,还请指正,话不多说,我们上代码。 这里我们需要先拓展一下Alamofire中的DataRequest类 extension DataRequest { //处理接口中返回的data是对象的时候 data:{},这里在请求方法中利用了 阅读详情

相关推荐

Swift 2.3 【封装网络请求业务类 AFNetworking/ Alamofire】

本文描述 Swift 发送网络请求的业务类写法。提供 AFNetworking 和 Alamofire 两种框架网络请求。 其实两个框架本质一样,均出自一个作者,安装可到 github 去下载或者使用 CocoaPods 集成。

CoderZYWang 3142

【iOS_Swift_Alamofire实现网络请求】

学习swift继续延续之前的思路,对照着OC学,从UI起手,学习到对应的自适应布局。今天再次学习了swift的原生网络请求和对应的第三方库-Alamofire。和AFN库一样使用起来简单快捷,swift的语言特性安全在很多处都会体现,接下来会学习swift的原声json Model解析库。

weixin_61639290的博客 3951

Swift.Alamofire的封装

实现功能: 自动缓存,网络状态监听,无网络状态自动调用缓存数据. 统一全局manager,一次设定baseURL与header.全局使用. 优化调用方式,使网络请求更轻便,更直观. #使用第三方库: Alamofire: 核心功能,网络请求. SwiftyJSON: 数据缓存时使用,方便地处理JSON数据. /建议配合使用MBProgressHud,但因为非必须,demo中去掉了./ 1.自动缓...

Ethan.Wong的博客 2168

告别网络请求烦恼:Alamofire让iOS/macOS开发效率提升300%的实战指南

你是否还在为iOS/macOS应用中的网络请求处理而头疼?手动解析JSON、处理网络错误、管理请求队列——这些重复繁琐的工作消耗了大量开发时间。Alamofire作为基于Swift的网络库,通过封装Apple的URL Loading System,提供了简洁易用的API,让网络请求变得前所未有的轻松。本文将带你从入门到精通,掌握Alamofire的核心功能和最佳实践,解决90%的网络开发痛点。 ...

gitblog_00413的博客 1054

Alamofire的设计之道

前言:Alamofire是一个由Swift编写的优雅的网络开发框架。大部分用Swift编写的iOS App的网络模块都是基于Alamofire的。作为Swift社区最活跃的几个项目之一,有许多开发者在不断的对其进行完善,所以学习这种优秀的开源代码对深入理解Swift的特性很有帮助。

Leo的专栏 1万+

Swift 3.0封装 URLSession 的GET/SET方法代替 Alamofire

升级到 Swift3.0 之后,新版本的 Alamofire 只支持 iOS 9.0 以上的系统,如果要适配 iOS 8,需要自己封装 URLSession,下面是笔者的方案: 这里使用的是 Swift 自己的原生类型 URLSession,而不是NSURLSession。 Alamofire 4.0 中的request方法的参数列表如下:public func request( _ u

Cwift的专栏 8426

简单封装Alamofire

前言: 第三方库提供的API有时候并不能直接提供在项目里面直接调用,为了避免第三方库的不稳定性带来的影响,将其封装使用是个很好的做法。类似于JPA或MyBatis这样的“三层架构”实际上可以变换思路改成封装第三方库的做法,下面是一个利用协议和闭包简易封装的Alamofire做法,过程非常简单。 协议层: 协议层定义两个待实现的方法,一个为get请求,一个为post请求。当然,必要的数参数和闭包(数据请求完后将其回调出)也是具备的。内容如下: import Foundation import SwiftyJS

kicinio的博客 1234

使用Alamofire实现Swift中的文件下载

Swift是苹果公司开发的一种安全、现代、性能优越的编程语言,专为Apple平台设计。它为开发iOS、macOS、watchOS和tvOS应用程序提供了快速而高效的方式。Alamofire是一个基于Swift的网络库,专注于iOS和macOS,简化了复杂的HTTP操作,提供了更易用的API接口。它支持多种HTTP任务的执行,如GET、POST、PUT、PATCH和DELETE等。文件下载通常指的是一种从远程服务器获取数据的过程。

weixin_35748962的博客 1303

Alamofire 框架封装与使用

Alamofire 框架封装与使用

Hanyang Li的专栏 2687

swift-基于Alamofire封装的网络请求工具

基于Alamofire封装的网络请求工具

swift4.2网络请求的三种封装

对于swift4.2的网络请求的封装。包含链式,类AFN及对moya的封装。封装的功能包含:1.一次性处理请求指示器HUD 2.一次性处理请求状态码及错误弹窗 3.登录过期自动跳转到登录页等。 4.可以处理所有接口都要使用的公共参数。

SolarNetwork-优雅的Swift网络封装

GitHub: SolarNetwork 前言 刚开始写Swift项目时,用到网络请求时,毫无疑问,选择了Moya。但随着项目的增大,接口越来越多,TargetType文件也越来越大,寻找某一个接口的参数和其他配置时,就要在各种Switch中跳来跳去,感到十分烦恼,就算分了多个TargetType,也还是存在这个问题,于是就干脆借鉴Moya的优点,基于Alamofire重新封装了一个简单易用的网络...

weixin_33671935的博客 193

HFSS仿真的后处理结果,如何根据天线表面的电流密度分布对天线进行优化?

在HFSS仿真中,天线表面的Jsurf​是最直观、最有价值的诊断工具之一。它不仅告诉你天线“能不能工作”,还能告诉你“为什么工作”以及“哪里出了问题”。

degogmy的博客 1160

简单的封装网络下载almofire(一)

网络下载是作为一个iOS程序必须懂得的技术.虽然已经有大牛封装非常好用的下载sdk,功能也非常强大,并且基本上你都不用怎么在添加新的功能就可以直接使用.非常方便.    但是有个问题,如果我们直接使用他们的sdk,一旦他们放弃了跟新,或者说,我们要换一个比这个更好用的sdk,那么问题就来了,你需要把你所写的下载代码全部换掉,如果是个小工程,还不算什么事,如果大工程,那么你就麻烦了.需要一个一个的

海阔天空的专栏 777

Shopee App加密算法逆向实战:从libshpssdk.so到x-sap-ri的生成机制

本文详细解析了Shopee App核心加密参数x-sap-ri的生成机制。通过逆向分析libshpssdk.so动态库,揭示了其采用9套算法动态切换的复杂签名逻辑,并分享了从抓包定位、Frida动态调试到Unidbg模拟执行的全过程实战经验,为移动应用安全研究提供了完整的技术路径。

weixin_29323551的博客 1328

09、Flutter FFI Dart Native API

本文介绍了 Dart Native API 的基本用法,解决了 Dart 与 C 异步通讯的问题

eieihihi的专栏 4400

Swift5.0 Alamofire网络请求的二次封装

Alamofire结合SwiftyJSON、ObjectMapper二次封装网络请求Alamofire直接上代码吧单例方法:请求类:YRequestManager扩展请求方法:post、get、upload扩展私有方法,封装请求请求数据返回响应方法AFSErrorInfo结构体 和 YAPITargetType协议protocolbaseModel代码实例1说明 Alamofire AFNet...

仰望星空的博客 1万+

[nlp] 自然语言理解基准 ATIS Snips

ATIS 4k 21 Intents(not include UNK) 120 SlotsSNIPS 13k 7 Intents(not include UNK) 72 SlotsATIS Benchmark (Intent Detection) | Papers With CodeSNIPS Benchmark (Intent Detection) | Papers With Code

心宝的博客 748

Alamofire的封装框架CryoNet

基于 Alamofire 的现代化 Swift 网络框架,专为提升 iOS/macOS 开发效率设计

函数的彼端 859

Sigrity SPEED2000 TDR TDT Simulation模式如何进行时域阻抗仿真分析操作指导-差分信号

Sigrity SPEED2000 TDR TDT Simulation模式如何进行时域阻抗仿真分析操作指导-单端信号详细介绍了单端信号如何进行TDR仿真分析,下面介绍如何对差分信号进行TDR分析,还是以下图为例进行分析。Impedance是时域阻抗曲线,也是最主要的观测指标,注意:impedance曲线的时间刻度不是延时,延时=时间刻度/2,因为TDR测量的是用一来一回的原理去测量的。Use Lossy peeling 默认不勾选,勾选的话代表同时仿真无损和有损方案,不勾选代表仅仿真有损方案。

weixin_54787054的博客 857

Python爬虫实战:爬取小红书数据做爆款分析,我破解了签名加密+移动端反爬(附完整代码)

爬取小红书数据的核心,不是“简单的HTTP请求”,而是“理解移动端接口的加密逻辑和反爬规则”——从x-s/x-t签名破解到移动端UA伪装,再到行为模拟,每一步都是对移动端爬虫的深度理解。这套方案的价值在于,不仅能稳定抓取小红书数据,还能从数据中拆解出有价值的爆款特征,真正把“数据”变成“洞察”。对程序员来说,小红书爬虫不仅是技术练手,更是了解新媒体平台数据逻辑的窗口。希望这篇分享能帮到做新媒体分析或爬虫进阶的小伙伴,也欢迎在评论区交流小红书反爬和爆款分析的更多技巧!

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 2058

Swift5 Alamofire5.0 二次封装

使用Objective-C开发的应该非常熟悉AFNetworking这个网络框架。在Swift诞生之后,AFNetworking的作者用Swift来编写一个类似AFNetworking的网络框架,那就是Alamofire!->github. 一直使用Objective-C开发,我来尝试下用Swift进行开发,首先从网络框架入手,对Alamofire进行二次封装。 目前Alamofire的最新...

飞跃 Ni Wo Ta 8950

ardupilot 方向余弦矩阵/旋转矩阵的理解

本节主要记录自己对ardupilot中用到的方向余弦矩阵/旋转矩阵的理解,欢迎批评指正,有些资料参考网上写的比较好的资料,免得查找资料麻烦。旋转矩阵的坐标理解:表示从旋转矩阵的下标的坐标系的坐标变换到上标表示的坐标系坐标下。旋转矩阵的坐标系理解:表示从旋转矩阵的上标的坐标系变换到下标表示的坐标系下。从旋转矩阵的投影更好理解,比如下面旋转矩阵的第一行是左边坐标系的第一维分量在右边坐标系的投影。

陌城烟雨 612

FutureKit网络请求封装:从Alamofire到URLSession的异步转换

FutureKit是一个基于Swift的异步编程库,专为iOS和OS X平台设计。它通过Future/Promises模式简化异步操作管理,让开发者能够更优雅地处理网络请求、数据解析等耗时任务。本文将详细介绍如何使用FutureKit封装URLSession网络请求,并展示其如何简化异步代码流程。 ## 🚀 FutureKit与URLSession的完美结合 在传统的URLSession使用

gitblog_02817的博客 686

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

swift5.0 封装Alamofire

swift对Alamofire的二次封装,设置header参数等

zhaofahseng的博客 1194

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

上一篇: 使用CollectionView实现无限轮播图(自动和手动轮播)
下一篇: Swift封装图片浏览,多张图片浏览,缩放,gif图片的播放
chenqiangblogs
博客等级 码龄11年 19粉丝 60原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值