AFNetworking3.0使用
2016-01-04 16:35
363 查看
其实大量参考了其他文章,但是这篇博客是我写的。
编辑于2016/01/04
github地址:https://github.com/AFNetworking/AFNetworking/wiki/AFNetworking-3.0-Migration-Guide#new-requirements-ios-7-mac-os-x-109-watchos-2-tvos-9--xcode-7
下面是AFNetworking的两个参考地址:
http://www.jianshu.com/p/047463a7ce9b
http://www.open-open.com/lib/view/open1436603781395.html
AFNetworking 3.0.4是目前AFNetworking的最新版。可以使用pod search AFNetworking查看最新可使用的版本.
3.0版本正式支持iOS7,Mac OS X的10.9,watch OS 2,tvOS 9和Xcode 7.适配其他版本请参考第一个文档.
AFNetworking有以下特点:
1.之前版本基于NSURLConnection的API已经全部弃用,改为使用基于NSURLSession的API。
注:NSURLConnection的api已正式被苹果弃用,虽然该API将继续运行,但将没有新功能将被添加。苹果建议所有的项目迁移到基于NSURLSession的api。
2.下面几个接口已经被废弃:
AFURLConnectionOperation
AFHTTPRequestOperation
AFHTTPRequestOperationManager
3.0的核心类为AFHTTPSessionManager.
3.有一些UI相关的类已经被重构过。
UIImageView+AFNetworking
UIWebView+AFNetworking
UIButton+AFNetworking
图片缓存的方法包括在内。
AFNetworking3.0的方法要更加直观简洁,我都觉得基本不用再进一步封装了(之前的2.0我都会先封装一次)。简单的请求直接就是网址+参数的形式。文件上传只是增加了一个新的接口而已。
话不多说,直接看接口吧:核心类是AFHTTPSessionManager
[/code]
好了,上面的内容只涉及POST请求,因为其他请求的形式其实完全一样,到AFHTTPSessionManager.h文件看一眼就知道了。不过这里说一下上传文件的用法:
[/code]
注意这里的formData是可变的,所以可以添加多组数据。是不是很方便?
不过这个最后一个参数mimeType 表示了上传的类型,如果你不知道这个类型怎么用字符串表示的话,请前往下面的网址参考:
http://www.iana.org/assignments/media-types/media-types.xhtml
我相信你不会太晕的。
编辑于2016/01/04
github地址:https://github.com/AFNetworking/AFNetworking/wiki/AFNetworking-3.0-Migration-Guide#new-requirements-ios-7-mac-os-x-109-watchos-2-tvos-9--xcode-7
下面是AFNetworking的两个参考地址:
http://www.jianshu.com/p/047463a7ce9b
http://www.open-open.com/lib/view/open1436603781395.html
AFNetworking 3.0.4是目前AFNetworking的最新版。可以使用pod search AFNetworking查看最新可使用的版本.
3.0版本正式支持iOS7,Mac OS X的10.9,watch OS 2,tvOS 9和Xcode 7.适配其他版本请参考第一个文档.
AFNetworking有以下特点:
1.之前版本基于NSURLConnection的API已经全部弃用,改为使用基于NSURLSession的API。
注:NSURLConnection的api已正式被苹果弃用,虽然该API将继续运行,但将没有新功能将被添加。苹果建议所有的项目迁移到基于NSURLSession的api。
2.下面几个接口已经被废弃:
AFURLConnectionOperation
AFHTTPRequestOperation
AFHTTPRequestOperationManager
3.0的核心类为AFHTTPSessionManager.
3.有一些UI相关的类已经被重构过。
UIImageView+AFNetworking
UIWebView+AFNetworking
UIButton+AFNetworking
图片缓存的方法包括在内。
AFNetworking3.0的方法要更加直观简洁,我都觉得基本不用再进一步封装了(之前的2.0我都会先封装一次)。简单的请求直接就是网址+参数的形式。文件上传只是增加了一个新的接口而已。
话不多说,直接看接口吧:核心类是AFHTTPSessionManager
//单例的接口
+ (instancetype)manager;
//将get与post请求用不同的方法,还是很有爱的,下面的参数无需多说了
- (nullable NSURLSessionDataTask *)POST:(NSString *)URLString
parameters:(nullable id)parameters
progress:(nullable void (^)(NSProgress *uploadProgress)) uploadProgress
success:(nullable void (^)(NSURLSessionDataTask *task, id _Nullable responseObject))success
failure:(nullable void (^)(NSURLSessionDataTask * _Nullable task, NSError *error))failure;
//注意多了一个block,这个代理可以用来添加你要上传的数据
- (nullable NSURLSessionDataTask *)POST:(NSString *)URLString
parameters:(nullable id)parameters
constructingBodyWithBlock:(nullable void (^)(id <AFMultipartFormData> formData))block
success:(nullable void (^)(NSURLSessionDataTask *task, id _Nullable responseObject))success
failure:(nullable void (^)(NSURLSessionDataTask * _Nullable task, NSError *error))failure DEPRECATED_ATTRIBUTE;
[/code]
好了,上面的内容只涉及POST请求,因为其他请求的形式其实完全一样,到AFHTTPSessionManager.h文件看一眼就知道了。不过这里说一下上传文件的用法:
[manager POST:url parameters:params constructingBodyWithBlock:^(id<AFMultipartFormData> _Nonnull formData) {
//如果需要上传文件使用该方法
[formData appendPartWithFileData:data name:name fileName:fileName mimeType:@"image/jpeg"];
} progress:^(NSProgress * _Nonnull uploadProgress) {
} success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
}];
[/code]
注意这里的formData是可变的,所以可以添加多组数据。是不是很方便?
不过这个最后一个参数mimeType 表示了上传的类型,如果你不知道这个类型怎么用字符串表示的话,请前往下面的网址参考:
http://www.iana.org/assignments/media-types/media-types.xhtml
我相信你不会太晕的。
相关文章推荐
- 依次加载listview的每一个item实现动画的效果
- 万万没想到pdf可以转换成word
- PHP导出Excel 数字末尾变0或小数点解决办法
- 禁用iPhone手机浏览器上给电话号码自动加上的link样式
- 配置OpenStack以使用LDAP实现身份管理
- [Android实例] MQTT协议,Android消息推送
- 正益工场为京西创客工场输送双创“软”实力
- myeclipse启用/关闭debug模式
- android-获取虚拟键盘的高度(让虚拟键盘顶部和弹出框底部贴着)
- android极光推送初步了解
- Caffe学习(未完)
- 关于UIView的autoresizingMask属性
- Zabbix 客户端自定义端口监控
- lightning mdb 源代码分析(4)—MVCC/COW
- 如何跳到系统设置里的WiFi界面
- JMeter (1) —— JMeter与WebDriver安装与测试(101 Tutorial)
- home建后再次进入不显示之前的页面问题
- Unity3D手游开发日记(3) - 场景加载进度条的完美方案
- android SQL数据库的使用
- 【mongoDB高级篇①】聚集运算之group,aggregate