IOS开发之——AFN-基本使用(01)
一 概述
- 什么是AFN
- AFN入门介绍
- AFN使用示例
二 什么是AFN
- 全称是AFNetworking,是对NSURLConnection、NSURLSession的一层封装
- 虽然运行效率没有ASI高,但是使用比ASI简单
- 在iOS开发中,使用比较广泛
三 AFN入门介绍
3.1 项目地址
Github/AFNetworking:https://github.com/AFNetworking/AFNetworking
3.2 添加AFN依赖
在项目位置打开终端,执行如下指令
pod init
打开Podfile文件,添加SSZipArchive依赖
pod 'AFNetworking', '~> 4.0'
添加依赖更新
pod update
3.3 AFN使用
在引用位置添加依赖头文件
#import "AFNetworking.h"
一般请求如下:
- 执行Get请求返回JSON
- 执行Get请求返回XML
- 执行Get请求返回Data
- 执行Post请求
执行AFN请求的一般过程
- 创建AFHTTPSessionManager
- 设置请求返回类型:AFXMLParserResponseSerializer或者AFJSONResponseSerializer(默认)
- mgr GET/POST请求
四 AFN使用示例
4.1 执行Get请求返回JSON
代码
-(void)HttpManagerGetJSON
{NSString *url=@"http://localhost:8080/MJServer/login";NSMutableDictionary *params=[NSMutableDictionary dictionary];params[@"username"]=@"123";params[@"pwd"]=@"123";AFHTTPSessionManager *mgr=[AFHTTPSessionManager manager];mgr.responseSerializer=[AFJSONResponseSerializer serializer];[mgr GET:url parameters:params headers:nil progress:^(NSProgress * _Nonnull downloadProgress) {NSLog(@"progress");} success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {NSLog(@"成功--%@",[responseObject class]);} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {NSLog(@"失败");}];
}
返回结果(类型)
2022-03-19 13:15:22.451162+0800 AFN-Demo1[53993:870418] 成功--__NSSingleEntryDictionaryI
4.2 执行Get请求返回XML
代码
-(void)HttpManagerGetXML
{NSString *url=@"http://localhost:8080/MJServer/login";NSMutableDictionary *params=[NSMutableDictionary dictionary];params[@"username"]=@"123";params[@"pwd"]=@"123";params[@"type"]=@"XML";AFHTTPSessionManager *mgr=[AFHTTPSessionManager manager];mgr.responseSerializer=[AFXMLParserResponseSerializer serializer];[mgr GET:url parameters:params headers:nil progress:^(NSProgress * _Nonnull downloadProgress) {NSLog(@"progress");} success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {NSLog(@"成功--%@",[responseObject class]);} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {NSLog(@"失败");}];
}
返回结果
2022-03-19 13:16:57.090992+0800 AFN-Demo1[54087:872784] 成功--NSXMLParser
4.3 执行Get请求返回Data
代码
-(void)HttpManagerGetData
{NSString *url=@"http://localhost:8080/MJServer/login";NSMutableDictionary *params=[NSMutableDictionary dictionary];params[@"username"]=@"123";params[@"pwd"]=@"123";params[@"type"]=@"XML";AFHTTPSessionManager *mgr=[AFHTTPSessionManager manager];mgr.responseSerializer=[AFHTTPResponseSerializer serializer];[mgr GET:url parameters:params headers:nil progress:^(NSProgress * _Nonnull downloadProgress) {NSLog(@"progress");} success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {NSLog(@"成功--%@",[responseObject class]);} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {NSLog(@"失败");}];
}
返回结果
2022-03-19 13:17:55.420995+0800 AFN-Demo1[54149:874520] 成功--_NSInlineData
4.4 执行Post请求
代码
-(void)HttpManagerPost
{NSString *url=@"http://localhost:8080/MJServer/login";NSMutableDictionary *params=[NSMutableDictionary dictionary];params[@"username"]=@"123";params[@"pwd"]=@"123";AFHTTPSessionManager *mgr=[AFHTTPSessionManager manager];[mgr POST:url parameters:params headers:nil progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {NSLog(@"成功--%@",responseObject);} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {NSLog(@"失败");}];
}
返回结果
2022-03-19 13:19:02.932836+0800 AFN-Demo1[54222:876367] 成功--{success = 登录成功
}
IOS开发之——AFN-基本使用(01)相关推荐
- IOS开发基础之网易新闻环境搭建异步请求json,AFN网络封装第1天
IOS开发基础之网易新闻环境搭建异步请求json,AFN网络封装第1天 视频资料是2015年的,但是AFN是导入框架的关键文件,我尝试使用cocoapods安装最新的AFN,虽然成功了,但是版本太高, ...
- IOS开发高级之点餐系统的实现-01
IOS开发高级之点餐系统的实现-01 // // ViewController.m // 01-点餐系统 // // Created by 鲁军 on 2021/2/11. //#import &qu ...
- iOS开发系列课程(01) --- iOS编程入门
iOS概述 什么是iOS iOS是苹果公司为它的移动设备(iPhone.iPad.iWatch等)开发的移动操作系统. iOS发展史 2007年苹果发布iPhone Runs OS X 2008年 ...
- IOS开发基础之使用AFNetworking框架实现文件上传get和post请求
IOS开发基础之使用AFNetworking框架实现文件上传get和post请求 AFNetworking框架 请自行从github官网clone.命令为 git clone xxx.xxx是项目的地 ...
- iOS开发第三方大全
UI 下拉刷新 EGOTableViewPullRefresh- 最早的下拉刷新控件. SVPullToRefresh- 下拉刷新控件. MJRefresh- 仅需一行代码就可以为UITableVie ...
- iOS开发-技术知识盘点总结(二)
1> UINavgationController使用 导航控制器之间切换供用一块导航条! 导航条的内容由栈定控制器决定! 显示在我们眼前的永远是栈顶控制器! 左上角的返回按钮文字是特例由上一个控 ...
- iOS开发之资料收集
github排名:https://github.com/trending, github搜索:https://github.com/search. 此文章转自github:https://github ...
- iOS:iOS开发非常全的三方库、插件、大牛博客等等
iOS开发非常全的三方库.插件.大牛博客等等 github排名:https://github.com/trending, github搜索:https://github.com/search. 此文章 ...
- iOS开发系列--让你的应用“动”起来
概览 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌.在这里你可以看到iOS中如何使用图层精简非交互式绘图,如何通过核心动画创建基础动画.关键帧动画 ...
最新文章
- 个人作业1——四则运算题目生成程序
- 过度封装的ZeroMQ
- 我们处理了10亿个Java记录的错误-这是导致97%的错误的原因
- 配置中心_Nacos做配置中心
- 2020,这些前沿技术成全球关注热点
- MarkDown总结(适合初学者快速入门)
- opencv中cvSetCaptureProperty定位不准的原因及解决(转载)
- n平方的求和公式_极限求解--数列前n项和公式推导(补充知识)
- 普林斯顿微积分读本第一章--函数、反函数
- python调用access数据库_Python访问Access数据库
- Docker容器实现跨宿主机通信
- Opencv中,imag=cv2.cvtColor(imag,cv2.COLOR_BGR2GRAY) 报错:error:!_src.empty() in function ‘cv::cvtColor‘
- FPGA-10:设计个简单的cpu(真的简单!)
- JAVA集合之Map集合遍历
- python读取pdf文件并转换成txt文件
- 点击高德地图标注没法弹窗_巴彦淖尔果农注意啦!林草局喊你上高德地图标注位置哦...
- 北京葡萄藤2019年上半年简报
- python实现微博超话一键签到点赞评论
- matlab中sinx的平方,sinx的平方是奇函数还是偶函数
- 什么是REST?什么叫符合REST规范的API接口?
热门文章
- Re-ID 2019 Review
- android功耗测试方法,手机功耗测试指南
- 申明(声明)、定义及默认参数
- [Swift]图片加载 SDWebImage、AlamofireImage和Kingfisher
- 浪潮信息赋能昆明地铁实现云边协同管理
- 【安卓开发】安卓开发工具: android studio(AS)的安装,配置与汉化保姆级详细教程
- 数据盾揭秘系列(十二)|数据盾技术总监权威解读数据盾项目(下)
- hdu5597GTW likes function+欧拉函数
- python闯关训练营怎么样3.0_【新升级】3周!0基础Python量化投资!闯关式学习打卡,解锁新技能!...
- CPU温度实时预警并将信息发送到钉钉