第三方框架AFN使用
1.AFN框架基本结构:
一、AFN框架的2个管理对象
1.AFHTTPRequestOperationManager(是对NSURLConnection的封装)
2.AFHTTPSessionManager (对NSURLSession的封装)
二、AFHTTPRequestOperationManager的具体使用
1.创建管理者
AFHTTPRequestOperationManager *mgr = [AFHTTPRequestOperationManager manager];
2.封装请求参数
NSMutableDictionary *params = [NSMutableDictionary dictionary];
params[@"username"] = @"哈哈哈";
params[@"pwd"] = @"123";
3.发送请求(请求成功的时候调用这个success block,请求失败的时候调用调用这个 fail block)
NSString *url = @"http://localhost:8080/MJServer/login";
// POST请求
[mgr POST:url parameters:params
success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"请求成功---%@", responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"请求失败");
}];
// GET请求
[mgr GET:url parameters:params
success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"请求成功---%@", responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"请求失败");
}];
三、对服务器返回数据的解析
1.AFN可以自动对服务器返回的数据进行解析(默认将服务器返回的数据当做JSON来解析)
2.设置对服务器返回数据的解析方式
1> 当做是JSON来解析(默认做法)
* mgr.responseSerializer = [AFJSONResponseSerializer serializer];
* responseObject的类型是NSDictionary或者NSArray
2> 当做是XML来解析
* mgr.responseSerializer = [AFXMLParserResponseSerializer serializer];
* responseObject的类型是NSXMLParser
3> 直接返回data
* 意思是:告诉AFN不要去解析服务器返回的数据,保持原来的data即可
* mgr.responseSerializer = [AFHTTPResponseSerializer serializer];
3.注意
* 服务器返回的数据一定要跟responseSerializer对得上
1> 服务器返回的是JSON数据
* AFJSONResponseSerializer
* AFHTTPResponseSerializer
2> 服务器返回的是XML数据
* AFXMLParserResponseSerializer
* AFHTTPResponseSerializer
3> 服务器返回的是其他数据
* AFHTTPResponseSerializer
四:
利用 AFN 可以实时监听网络状态!
1.AFNetworkReachabilityManager 用来监听网络状态!
AFN 支持 https.需要设置 AFSecurityPolicy 的一些参数!(AFSecurityPolicy)
2.在发送网络请求的时候使用: 设置AFURLRequestSerialization 的属性 AFJSONRequestSerializer,可以自动帮你将OC数据参数 转换成 JSON 参数
AFURLRequestSerialization:参数解析器(将高速服务器的参数序列化成自己想要的格式)
AFURLResponseSerialization: 响应数据解析器! 用来解析服务器返回的数据(JSON/XML/HTML/图片/视频/普通文件)!
3. AFJSONResponseSerializer :JSON 解析器.默认的解析器类型. JSON 已经变成 ---> OC !
4.AFXMLParserResponseSerializer :XML 解析器.如果服务器返回的数据类型是 XML ,需要手动将解析器类型改变 成AFXMLParserResponseSerializer
XML ----> NSXMLParser
5. AFHTTPResponseSerializer :对服务器返回的数据没有做任何处理! 通过这个解析器得到的数据就是 二进制数据!
Data :二进制数据!
6. AFN 错误机制: 如果服务器返回的数据类型和响应解析器的类型不相匹配,就会报错!调用的是 失败的Block回调!
AFN 使用注意: 将解析器的类型和服务器返回的数据类型相匹配!
第三方框架AFN使用相关推荐
- 常用的iOS第三方框架
转载自:https://github.com/Tim9Liu9/TimLiu-iOS 目录 UI 下拉刷新 模糊效果 AutoLayout 富文本 图表 表相关与Tabbar 隐藏与显示 HUD与To ...
- 第三方框架简介ios
第三方框架简介iOS 图像 1.图片浏览控件MWPhotoBrowser 实现了一个照片浏览器类似 iOS 自带的相册应用,可显示来自手机的图片或者是网络图片,可自动从网络下载图片并进行缓存.可对图片 ...
- Android专题-常用第三方框架
Android专题-常用第三方框架 HTTP网络请求 带*号的是个人推荐比较好用的 HTTP网络请求 okhttp * :https://github.com/square/okhttp retrof ...
- Swift之SDWebImage第三方框架
在学习Swift过程中,最害怕的使用了OC的第三方框架 好不容易配置成功了,却出现了意外的Bug [UIImageView setImageWithURL:]: unrecognized select ...
- React-Native 之 GD (一)目录结构与第三方框架使用与主题框架搭建
1.APP效果图 2.工程环境配置 IOS: 将压缩包内的 Images.xcassets 文件夹直接替换掉我们iOS工程中的 Images.xcassets 文件夹. 这时候我们可以看到所有图片资源 ...
- 小程序第三方框架对比 ( wepy / mpvue / taro )
众所周知如今市面上端的形态多种多样,手机Web.ReactNative.微信小程序, 支付宝小程序, 快应用等,每一端都是巨大的流量入口,当业务要求同时在不同的端都要求有所表现的时候,针对不同的端去编 ...
- cocoapods管理第三方框架
2019独角兽企业重金招聘Python工程师标准>>> 1. gem sources -l -> *** CURRENT SOURCES *** https://ruby.ta ...
- Day2 : iOS第三方框架MBProgressHUD学习笔记
今天主要学习了MBProgressHUD,受益匪浅.MB实现了弹出提示,可以很快捷的集成到项目中去.不得不说,得益于GitHub上丰富的开源第三方框架,开发工作变得非常的简便,优雅. 1.可以在弹出提 ...
- iOS开发之第三方框架Masonry
2019独角兽企业重金招聘Python工程师标准>>> 第三方框架Masonry 该框架可以大大简化AutoLayout使用过程中对控件添加约束的代码. 框架地址:https://g ...
最新文章
- linux文件描述符
- 加工中心宏程序生成器_零件行外球面加工,老师傅告诉你,普通程序与宏加工哪个更方便...
- 应用在vs的ide调试环境下运行顺利,但是在bin目录直接运行exe报错的问题
- iscsi-分区类型
- 阿里云何川:开放兼容的云,计算巢帮助合作伙伴云化升级
- CSU 1116 Kingdoms
- 处理FTP上传成功推理
- Linux学习笔记002---Windows下安装CentOS7_带有UI桌面_图解
- 【Java企业级开发二】jsp简答题汇总
- 天顶角、太阳方位角和太阳高度角辨析
- BTA 常问的 Java基础39道常见面试题
- np问题 量子计算机,P vs NP与经典与量子计算机可解决的问题相同吗?
- python爬虫由浅入深8---基于正则表达式查询的淘宝比价定向爬虫
- 如何在Chrome浏览器中导入和导出密码
- 常见安防存储估算标准
- Https 忽略证书验证
- 部署yanagishima纪实
- Java:计算圆形和长方形的面积
- C++编程题(oj)-首字母变大写
- Jquery从入门到精通:二、选择器 1、准备篇 1)基础的基础:DOM模型