iOS常用网络库之AFNetWorking
简介
`AFNetworking`是iOS开发网络API中最常用的第三方库,`github`中的`star`数充分说明了它在iOS开发中第三方库中的江湖地位
github地址:[AFNetworking](https://github.com/AFNetworking/AFNetworking)
类介绍
NSURLSession 部分
AFURLSessionManager 基于NSURLSession,是对NSURLSession的封装并进一步优化使用
其内部其实使用的还是数据任务、上传任务、下载任务
AFHTTPSessionManager 继承于AFURLSessionManager 封装了一些HTTP请求操作
Serialization 部分
Serialization部分主要是处理请求和响应的
AFURLRequestSerialization是负责请求的相关设置
AFURLRequestSerialization 负责管理请求对象中内容的构建,负责管理request的属性等等一些东西 本类对象为manager对象的一个属性
AFHTTPRequestSerializer 负责管理HTTP请求对象相关的东西 manager默认使用的requestSerializer类型
AFJSONRequestSerializer 当请求参数为JSON时 使用此类来设置请求
AFPropertyListRequestSerializer 当请求参数为Plist时 使用此类来设置请求
AFURLResponseSerialization是负责管理响应的相关设置
AFHTTPResponseSerializer 负责管理响应对象中内容的构建,负责管理response的属性等等一些东西 本类对象为manager对象的一个属性
AFJSONResponseSerializer 负责处理JSON manager对象默认使用的responseSerializer类型
AFXMLParserResponseSerializer 负责处理XML
AFPropertyListResponseSerializer 负责处理Plist
AFImageResponseSerializer 负责处理Image
AFCompoundResponseSerializer 混合型数据 data
Additional Functionality
AFNetworkReachabilityManager 网络连通性
AFSecurityPolicy 加密相关
UIKit相关
GET
1. 访问百度首页
2. 访问糯米API
接口页面:http://apistore.baidu.com/apiworks/servicedetail/508.html
APIKey:794a5a140ecc24933911a42c37b5e773
> 响应序列化
> 请求序列化 添加请求头
> 参数都是以字典或数组形式传入
POST
1. 访问api
普通请求接口:http://open.weibo.com/wiki/2/statuses/update
参数都是以字典或数组形式传入
2. multi-part POST
Multi-Part请求接口:http://open.weibo.com/wiki/2/statuses/upload
参数:`2.00wzHcQGW4clHD3beba363fa0Tt21m`
`chengxinyuan4@sina.com` `chengxinyuan4`
Tips:
模拟HTTP请求工具
1. Chrome插件:postman
2. Mac App:[Paw](http://xz.cr173.com/soft2/pw.zip)
使用Cocoapods后import不提示
选择target(就是左边你的工程target)—— BuildSettings —— search Paths 下的 User
Header Search Paths,点击“+”号添加一项:并且输入:“$(PODS_ROOT)”(没有引号),选择:recursive(会在相应的目录递归搜索文件)
问题2
`Request failed: unacceptable content-type: text/plain text/html`
1. 在当前支持的响应序列化中添加支持不支持的类型
self.acceptableContentTypes = [NSSet
setWithObjects:@"application/json", @"text/json",
@"text/javascript", @"添加",
nil];
2. 切换类型
解释:AF的响应序列化支持一下几种,如果设置的为其中一种,实际返回类型不是那一种,则会报上面错误unacceptable content-type
HTTP:返回data
JSON:返回数组或字典 只支持JSON
XML:返回NSXMLParser 只支持XML
Plist:返回数组或字典
Image:返回image对象
混合数据:返回data
问题3
```
error:Error Domain=NSCocoaErrorDomain Code=3840 "JSON text did not start
with array or object and option to allow fragments not set."
```
解释:首先设置的响应类型是JSONSerializer,AF请求到数据后会解析数据,但我们返回的数据不是JSON格式,是HTML所以AF无力了。。。
iOS常用网络库之AFNetWorking的更多相关文章
- iOS常用网络库收集
一 ASIHttpRequest二 AFNetworking 三 AFDownloadRequestOperationA progressive download operation for AFNe ...
- iOS开发网络数据之AFNetworking使用
iOS开发网络数据之AFNetworking使用 如何选择AFNetworking版本 首先得下载AFNetworking库文件,下载时得首先弄清楚,你将要开发的软件兼容的最低版本是多少.AFNetw ...
- IOS常用第三方库《转》
UI 动画 网络相关 Model 其他 数据库 缓存处理 PDF 图像浏览及处理 摄像照相视频音频处理 响应式框架 消息相关 版本新API的Demo 代码安全与密码 测试及调试 AppleWatch ...
- iOS常用第三方库大全,史上最全第三方库收集
下拉刷新 EGOTableViewPullRefresh – 最早的下拉刷新控件. SVPullToRefresh – 下拉刷新控件. MJRefresh – 仅需一行代码就可以为UITableVie ...
- IOS常用开源库
转自:http://www.csdn.net/article/2013-06-18/2815806-GitHub-iOS-open-source-projects-two/1 1. AFNetwork ...
- ios 常用第三方库要加的framework,ARC的设置
一,常用第三方库要加的framework 1,SQLite3数据库:FMDatabase 需要添加:libsqlite3.dylib 2,网络请求:ASIHTTPRequest 需要添加:CFNetw ...
- iOS开发网络数据之AFNetworking使用 分类: ios技术 2015-04-03 16:35 105人阅读 评论(0) 收藏
http网络库是集XML解析,Json解析,网络图片下载,plist解析,数据流请求操作,上传,下载,缓存等网络众多功能于一身的强大的类库.最新版本支持session,xctool单元测试.网络获取数 ...
- ios常用第三方库git下载地址
本文转载至 http://blog.csdn.net/cerastes/article/details/38348599 iOS第三方库下载常用git 1.FMDB https://github.co ...
- iOS开发网络数据之AFNetworking使用1
链接地址:http://blog.csdn.net/daiyelang/article/details/38421341 如何选择AFNetworking版本 官网下载2.5版本:http://afn ...
随机推荐
- Android开发-自动更新
为车机写apk,先实现版本的自动更新. 1.不能再主线程中调用会阻塞ui的功能,需要使用异步方式调用网络,引入Android Async Http框架,需要两个包:android-async-http ...
- java线程内存模型,线程、工作内存、主内存
转自:http://rainyear.iteye.com/blog/1734311 java线程内存模型 线程.工作内存.主内存三者之间的交互关系图: key edeas 所有线程共享主内存 每个线程 ...
- 7、SQL Server索引、表压缩
索引 什么是索引? 索引是一种磁盘上的数据结构,建立在表或视图的基础上.使用索引可以使数据的获取更快更高校,也会影响其他的一些性能,如插入或更新等. 索引主要分为两种类型:聚集索引和非聚集索引. 字典 ...
- 移动端自动化环境搭建-Appium Client的安装和AppiumLibrary库的安装
A.安装依赖 appium client是配合原生的webdriver来使用的(特别是用java而不用maven的同学),因此二者必须配合使用缺一不可. B.安装过程 1.在线安装 pip insta ...
- SQL超过锁请求
---超过锁请求 http://blog.sina.com.cn/s/blog_7fb3b1840100u4dj.html 1.查询造成死锁的SQL语句 当SQL数据库的监控报警显示死锁进程数过多时, ...
- zend framework2 下载及安装
1.安装XAMPP 2.安装zend studio 3.在GITHUB上下载一个zendframework模板,插入到IDE中 4.将下载的zend framework2文件夹解压放在vendor文件 ...
- EBS中配置OAF
配置EBS的OAF作者 redqq 16:09 | 静态链接网址 | 最新回复 (0) | 引用 (0) | ERP学习 载jdev 9.03.5带Oracle Applications Extens ...
- BitLocker 加密工具挂起和恢复命令行(windows7)
如果你的硬盘使用BitLocker加密了,但是有时候需要高效率的硬盘做某些事情,可以暂时挂起加密,命令行如下方便做个bat. 挂起: manage-bde -protectors -disable C ...
- 【232】◀▶ IDL显示地理图像
参考: 01 IMAGE 将图像数据以图形窗体的形式显示. 02 COLORBAR 在已经存在的IDL图形中增加一个colorbar或创建. 03 MAPGRID 在已经存在的IDL地图图 ...
- Activex、OLE、COM、OCX、DLL之间的区别(转)
熟悉面向对象编程和网络编程的人一定对ActiveX.OLE和COM/DCOM这些概念不会陌生,但是它们之间究竟是什么样的关系,对许多们还是比较模糊的.在具体介绍它们的关系之间,我们还是先明确组件(Co ...