IOS网络框架的Alamofire5.4高版本网络工具封装
IOS网络框架的Alamofire5.4高版本网络工具封装
网上一般的封装都是过期的swift写法,或者低版本的Alamofire,照搬照抄只会报错一大堆。令开发者很是头疼。特此公开最新的网络工具封装。我只用最新版本的软件,其他版本一概不用
pod 加入
pod 'Alamofire', '~> 5.4.4'
写法:
// Created by lujun on 2021/11/20.
//import UIKit
import Alamofireenum MethodType {case GETcase POST
}
class NetworkTools{static let sharedInstance : NetworkTools = NetworkTools()private init(){}func requestData(type: MethodType,urlString: String, parameters: [String : Any]? = nil,finishedCallback : @escaping ( _ results : Any?, _ err: NSError?) -> ()){if(type==MethodType.GET){Alamofire.AF.request(urlString).responseJSON { (response) inswitch response.result {case .success(let json):finishedCallback(json as Any,nil)breakcase .failure(let error):print("error:\(error)")finishedCallback(nil,error as NSError)break}}}if(type==MethodType.POST){Alamofire.AF.request(urlString, method: .post, parameters: parameters).responseJSON { (response) inswitch response.result {case .success(let json):finishedCallback(json as Any,nil)breakcase .failure(let erro):print("error:\(erro)")finishedCallback( nil,erro as NSError )break}}}}//类方法func requestDataWithParam(type: MethodType,urlString: String, parameters: [String : Any],finishedCallback : @escaping ( _ results : Any) -> ()){AF.request(urlString, parameters: parameters).responseJSON { (response) inswitch response.result {case .success(let json):finishedCallback(json)breakcase .failure(let error):print("error:\(error)")break}}}
}
使用单例,创建唯一的对象。
测试Post ,看看能不能拿到accessToken。
func loadAccessToken(code: String) -> Void{let params = ["client_id":app_key,"client_secret":app_secret,"redirect_uri":redirect_url,"grant_type":"authorization_code","code":code]let baseUrl: String = "https://api.weibo.com/oauth2/access_token"NetworkTools.sharedInstance.requestData(type: .POST, urlString: baseUrl, parameters: params) { results, err indebugPrint(results)}}
控制台打印
Optional({"access_token" = "2.00tIZEpFEvWN6C38ab57404702UTsh";"expires_in" = 157679999;isRealName = true;"remind_in" = 157679999;uid = 5335345699;
})
IOS网络框架的Alamofire5.4高版本网络工具封装相关推荐
- IOS的Alamofire5.4高版本上传图片
IOS的Alamofire5.4高版本上传图片 Alamofire框架上传图片是比较冷门的知识.经常性报错,也找不到相关解释,或者其他低版本的写法,令开发者很是头疼.低版本的写法,在5.4.4API已 ...
- 达梦数据库,dimp导入报错:该工具不能解析此文件,请使用更高版本的工具
经常有朋友反馈达梦数据库,dimp导入报错:该工具不能解析此文件,请使用更高版本的工具 这种问题一般有两种情况: 1.用oracle等异构数据库导出的dmp文件来进行导入,这个是不支持的,建议用数据迁 ...
- 架构师之路-网络框架的搭建(高逼格)
一,了解常见的框架 1,你已经工作量3年不等或也许是菜鸟,只要接触Android开发那么在项目中必不可少的就是一些第三方框架:常见的网络请求框架,图片加载框架等- 我们具体了解下常见的网络框架: 网络 ...
- Android高版本网络请求失败 Cleartext HTTP traffic to xxx not permitted
我可以失败,但是不可以有遗憾! ----泰语心说 今天升级build gradle的targetversion,发现升级完后,网络请求一直失败,而且用Charles抓包看,发现连网络请求都没有,后来在 ...
- FFLIB网络框架单线程0.0.1版本-epoll_socket
更新: 封装了epoll和socket,目前是单线程版本 问题: 对于epoll_wait操作,何时将会触发EPOLLERR? 服务器端close掉socket时候,如何保证EPOLLIN不会再触发, ...
- android搭建网络框架,Android 搭建MVP+Retrofit+RxJava网络请求框架(三)
上一篇中主要是将mvp+rxjava+retrofit进行了结合,本篇主要是对mvp框架的优化:建议先去看上一篇:Android 搭建MVP+Retrofit+RxJava网络请求框架(二) 针对vi ...
- DM工作笔记-dimp及dexp的使用及解决该工具不能解析此文件,请使用更高版本的工具
再DM的bin目录下有下面2个程序: dimp 导入dump文件的 查看其help文件: dexp 导出demp文件的 查看其help文件: 下面每一个给出一个示例: 导出dmp文件 dexp USE ...
- s60 微信 服务器繁忙,微信Mars — 移动互联网下的高质量网络连接探索
1.astrozhou|周志杰 2.微信Mars之高质量网络连接探索 astrozhou|周志杰 3.自我介绍 • 10年毕业加入腾讯,开发S60v5 手中邮 • 11年初转战微信, 开发symbia ...
- Android 网络框架_常用的网络框架
看了张哥(stormzhang)的博客之后,深有感触,又让我感慨了一番,而且发现张哥的博客英文跟汉字之间是有空格的,数字跟汉字之间也有空格,看起来很舒服很美观,张哥真的是把每一个细节都做的很好,所以身 ...
最新文章
- 刘鹏飞 袁玮哲:自动生成论文评审意见!AI可以取代审稿人吗?
- Traincascade Error: Bad argument (Can not get new positive sample. The most possible reason is insuf
- Postman接口测试之POST、GET请求方法
- luogu P3379 【模板】最近公共祖先(LCA)
- linux centos7开启IP转发、路由转发解决docker 端口映射 及外部无法访问问题
- python爬虫科研数据提取_python爬虫数据提取四之pyquery
- asp.net中大文件下载
- 关于编程学习的一些思考 | 欢迎投稿
- Oracle基础 TO_CHAR函数参考(转)
- 2020年入门数据分析选择Python还是SQL?七个常用操作对比!
- Myeclipse中添加XFire插件支持
- Linux下JDK和Tomcat安装
- WPF 入门教程RelativeSources
- Win10没有Realtek高清晰音频管理器怎么办?
- win10电脑打开计算机快捷键,win10如何打开计算器工具 快速打开Win10计算器的四种方法...
- 计算机毛利润的函数,毛利率计算公式
- java助教_2018-2019第一学期Java助教心得
- 道道通导航linux升级,道道通导航升级免费版
- Win11如何设置自动关机
- CSDN:2021博客之星年度总评选大赛投票
热门文章
- 查询mysql视图_MySQL数据库简介及常用命令
- shell错位_Linux 中纠正拼写错误的Bash 命令方法
- 计算机跨考医学检验技术,医学检验技术考研可以考哪些专业?
- 波士顿动力机器人全体出动,奉上新年之舞!
- 秀操作:函数宏的三种封装方式
- C语言三剑客之《C陷阱与缺陷》一书精华提炼
- mysql 32k 限制_ORA-22828 输入样式或替换參数超过了32k限制大小
- redis常用命令_Redis的简介以及基本常用命令
- 大数据 -- kafka学习笔记:知识点整理(部分转载)
- Wannafly挑战赛22 D	整数序列 (线段树维护三角函数值)