AFNetworking3.0改变之图片语音上传下载
来源:互联网 发布:qq酷双项淘宝客加盟 编辑:程序博客网 时间:2024/06/12 23:43
AFNetworking自从3.0版本开始发生了一些重大变化。具体的变化请参考AFNetworking对应的文档(这里发不了链接,最近mac登不上github)
如果真要迁移旧代码或者新项目中使用,建议去仔细阅读说明。目前网上所搜索的一些使用方法绝大多数是2.X版本的。这里就简单介绍一下图片和语音文件上传和下载的具体使用,对于不想阅读英文或想着快速集成的小伙伴们会有帮助。
弃用的类
- AFURLConnectionOperation
- AFHTTPRequestOperation
- AFHTTPRequestOperationManager
修改的类
- UIImageView+AFNetworking
- UIWebView+AFNetworking
- UIButton+AFNetworking
下面介绍具体用例:
图片上传
这里要注意,之前的AFHTTPRequestOperationManager 已经改为AFHTTPSessionManager
- (void)httpPostImage:(NSString*)urlStr andImageData:(NSMutableData*)dataimageName:(NSString *)fileName complete:(void(^)(NSString *partUrl))partUrl fail:(void(^)(NSString *error))fail {if (!data) {return;}NSDictionary *parameters = @{@"productid":@"PRODUCT_MOBILE", @"taskid":@"0"};AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];manager.responseSerializer = [AFHTTPResponseSerializer serializer];[manager POST:urlStr parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData> _Nonnull formData) {[formData appendPartWithFileData:data name:@"file" fileName:fileName mimeType:@"image/jpeg"];} progress:^(NSProgress * _Nonnull uploadProgress) {} success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {NSString *responseString = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {fail(@"发送失败,请检查网络");}];}
这是一个图片上传方法,图片数据以NSData的形式传进来,请求带了几个参数,用parameters载体传递进去。
[formData appendPartWithFileData:data name:@"file" fileName:fileName mimeType:@"image/jpeg"];
这句是载入图片数据。要注意的是最后一个参数@"image/jpeg",这个参数对应的是jpg格式的图片,如果是别的格式,最后一个参数则要替换成别的,总共有这么写种类:
- `image/tiff`
- `image/jpeg`
- `image/gif`
- `image/png`
- `image/ico`
- `image/x-icon`
- `image/bmp`
- `image/x-bmp`
- `image/x-xbitmap`
- `image/x-win-bitmap`
以及 "application/json", "text/json", "text/javascript","text/html"
语音上传
语音上传和图片上传使用AFNetworking的方法是一样,格式就参照图片发送。要注意的是,mimeType参数要换了,如果是以xml格式传输,就换成"text/html",json传输,换成"text/json"。
文件下载
- (void)downloadVoiceWithUrl:(NSString *)urlStrcomplete:(void(^)(NSURL *filePath))voiceFilePathfail:(void(^)(NSString *error))fail {NSURLSessionConfiguration *config = [NSURLSessionConfiguration defaultSessionConfiguration];AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:config];NSURL *url = [NSURL URLWithString:urlStr];NSURLRequest *request = [NSURLRequest requestWithURL:url];NSURLSessionDownloadTask *task = [manager downloadTaskWithRequest:request progress:nil destination:^NSURL * _Nonnull(NSURL * _Nonnull targetPath, NSURLResponse * _Nonnull response) {NSURL *dirURL = [[NSFileManager defaultManager] URLForDirectory:NSDocumentDirectory inDomain:NSUserDomainMask appropriateForURL:nil create:NO error:nil];return [dirURL URLByAppendingPathComponent:[response suggestedFilename]];} completionHandler:^(NSURLResponse * _Nonnull response, NSURL * _Nullable filePath, NSError * _Nullable error) {if (error) {NSLog(@"error:%@",error);fail(@"");} else {NSLog(@"filePath:%@",filePath);voiceFilePath(filePath);}}];[task resume];}
0 0
- AFNetworking3.0改变之图片语音上传下载
- iOS之AFNetworking3.0
- AFNetworking3.0文件/图片上传
- 基于AFNetWorking3.0的图片缓存分析
- AFNetWorking3.0 上传图片 和 简单封装
- AFNetWorking3.0之AFURLSessionManager(一)
- iOS开发 之 AFNetworking3.0使用详解
- AFNetworking3.0
- AFNetWorking3.0
- AFNetworking3.0
- AFNetworking3.0+
- iOS 开发 AFNetworking3.0源码解析(一:结构图/网络请求三次封装/上传下载/网络监测)
- iOS7使用AFNetworking3.0上传图片时出现的问题
- IOS AFNetworking3.0 SDImage 网络请求和图片加载
- IOS AFNetworking3.0 通过表单上传多张图片
- iOS 之 AFNetWorking3.1.0
- 微信语音上传下载
- android之调用webservice 实现图片上传下载
- 正向代理与反向代理的区别
- odoo 新手之路-__openerp__.py配置信息
- 希尔排序与快速排序
- 基础文本处理
- mysql 主从原理及配置
- AFNetworking3.0改变之图片语音上传下载
- odoo 新手之路-加载js,css
- JAVA虚拟机:Java内存模型
- 异常 EventBusException:its super classes have no public methods with the @Subscribe annotation
- 【JZOJ4630】计数
- Java 泛型
- Android Studio---Plugin is too old(插件版本太低)解决方法
- 服务器端判断request是Ajax请求(异步)还是传统请求(同步)
- JavaWeb使用Session防止表单重复提交