1 20 50 150 500
欢迎来到莱福软件站,找素材,搜软件,就上莱福软件站!
当前位置 >首页 >软件下载 >电脑软件 >编程开发 >编程其他

AFNetworking 3.0.4 官方版

软件信息
  • 分类:编程其他
  • 大小:452KB
  • 语言: 中文
  • 环境: WinAll, Win7, Mac
  • 更新:2024-11-12
  • 评级:
  • 系统: Windows Linux Mac Ubuntu
  • 软件类别: 国产软件 / 免费软件 / 编程控件
  • 插件情况:
  • 相关链接: https://github.com/AFNetworking/AFNetwor

AFNetworking是一款在OS X和iOS下都令人喜爱的网络库。AFNetworking适用于iOS以及Mac OS X. 它构建于在NSURLConnection, NSOperation, 以及其他熟悉的Foundation技术之上. 它拥有良好的架构,丰富的api,以及模块化构建方式,使得使用起来非常轻松。

为了迎合iOS新版本的升级, AFNetworking在3.0版本中删除了基于 NSURLConnection API的所有支持。如果你的项目以前使用过这些API,建议您立即升级到基于 NSURLSession 的API的AFNetworking的版本。本指南将引导您完成这个过程。

CORE:

AFURLConnectionOperation:一个 NSOperation 实现了NSURLConnection 的代理方法.

HTTP Requests:

AFHTTPRequestOperation:AFURLConnectionOperation的子类,当request使用的协议为HTTP和HTTPS时,它压缩了用于决定request是否成功的状态码和内容类型.

AFJSONRequestOperation:AFHTTPRequestOperation的一个子类,用于下载和处理jason response数据.

AFXMLRequestOperation:AFHTTPRequestOperation的一个子类,用于下载和处理xml response数据.

AFPropertyListRequestOperation:AFHTTPRequestOperation的一个子类,用于下载和处理property list response数据.

HTTP CLIENT:

AFHTTPClient:捕获一个基于http协议的网络应用程序的公共交流模式.包含:

使用基本的url相关路径来只做request

为request自动添加设置http headers.

使用http 基础证书或者OAuth来验证request

为由client制作的requests管理一个NSOperationQueue

从NSDictionary生成一个查询字符串或http bodies.

从request中构建多部件

自动的解析http response数据为相应的表现数据

在网络可达性测试用监控和响应变化.

IMAGES

AFImageRequestOperation:一个AFHTTPRequestOperation的子类,用于下载和处理图片.

UIImageView+AFNetworking:添加一些方法到UIImageView中,为了从一个URL中异步加载远程图片

AFNetworking使用总结

1 将AFNetWorking文件夹导入项目

2 添加类库 Security.framework、MobileCoreServices.framework、SystemConfiguration.framework

3 在使用的地方 #import "AFNetworking.h"

解决编译时警告:

Prefix.pch文件中加入  #import <SystemConfiguration/SystemConfiguration.h>  #import <MobileCoreServices/MobileCoreServices.h>  

注:AFNetWorking使用了ARC ,在不使用ARC项目中使用时,对AFNetWorking的所有.m文件添加“-fobjc-arc” 

  在使用ARC项目中,使用“不使用ARC”的类库时,对类库的.m文件添加“-fno-objc-arc”

AFHTTPRequestOperation 核心代码

与NSURLConnection对象不同,每个共享应用范围的设置如会话管理、缓存策略、Cookie存储以及URL协议等,这些NSURLSession对象都可以单独进行配置。使用特定的配置来初始化会话,它可以发送任务来获取数据,并上传或下载文件。

在AFNetworking 2.0中,使用AFHTTPRequestOperation,有可能创建一个没有额外开销的独立的网络请求来获取数据。NSURLSession则需要更多的开销,为了获得所要请求的数据。

接下来,将要通过AFHTTPSessionManager创建一个对象,并创建一个任务和启动它。

iOS- 利用AFNetworking(AFN) - 实现图片上传

 官方建议AFN的使用方法

 1. 定义一个全局的AFHttpClient:包含有

    1> baseURL

    2> 请求

    3> 操作队列 NSOperationQueue

 2. 由AFHTTPRequestOperation负责所有的网络操作请求

 3. 修改xxx-Prefix.pch文件

#import <MobileCoreServices/MobileCoreServices.h>

#import <SystemConfiguration/SystemConfiguration.h>

0.导入框架准备工作

•1. 将框架程序拖拽进项目

•2.  添加iOS框架引用

–SystemConfiguration.framework

–MobileCoreServices.framework

•3.  引入

#import "AFNetworking.h"

1.AFN的客户端,使用基本地址初始化,同时会实例化一个操作队列,以便于后续的多线程处理

1 @interfaceViewController () 2
3 { 4
5     // AFN的客户端,使用基本地址初始化,同时会实例化一个操作队列,以便于后续的多线程处理 6
7     AFHTTPClient    *_httpClient;17     NSOperationQueue *_queue;18
19 }
1 - (void)viewDidLoad2 {3     [super viewDidLoad];4    
5     NSURL *url = [NSURL URLWithString:@"http://192.168.3.255/~apple/qingche"];6     _httpClient = [[AFHTTPClient alloc] initWithBaseURL:url];7    
8     _queue = [[NSOperationQueue alloc] init];9 }

2.利用AFN实现文件上传操作细节

1 #pragma mark - 文件上传 2 - (IBAction)uploadImage 3 { 4     /*
5      此段代码如果需要修改,可以调整的位置
6      
7      1. 把upload.php改成网站开发人员告知的地址
8      2. 把file改成网站开发人员告知的字段名
9      */10     // 1. httpClient->url11    
12     // 2. 上传请求POST13     NSURLRequest *request = [_httpClient multipartFormRequestWithMethod:@"POST" path:@"upload.php" parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {14         // 在此位置生成一个要上传的数据体15         // form对应的是html文件中的表单16        
17        
18         UIImage *image = [UIImage imageNamed:@"头像1"];19         NSData *data = UIImagePNGRepresentation(image);20        
21         // 在网络开发中,上传文件时,是文件不允许被覆盖,文件重名22         // 要解决此问题,23         // 可以在上传时使用当前的系统事件作为文件名24         NSDateFormatter *formatter = [[NSDateFormatter alloc] init];25         // 设置时间格式26         formatter.dateFormat = @"yyyyMMddHHmmss";27         NSString *str = [formatter stringFromDate:[NSDate date]];28         NSString *fileName = [NSString stringWithFormat:@"%@.png", str];29        
30        
31         /*32          此方法参数
33          1. 要上传的[二进制数据]
34          2. 对应网站上[upload.php中]处理文件的[字段"file"]
35          3. 要保存在服务器上的[文件名]
36          4. 上传文件的[mimeType]
37          */38         [formData appendPartWithFileData:data name:@"file" fileName:fileName mimeType:@"image/png"];39     }];40    
41     // 3. operation包装的urlconnetion42     AFHTTPRequestOperation *op = [[AFHTTPRequestOperation alloc] initWithRequest:request];43    
44     [op setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {45         NSLog(@"上传完成");46     } failure:^(AFHTTPRequestOperation *operation, NSError *error) {47         NSLog(@"上传失败->%@", error);48     }];49    
50     //执行51     [_httpClient.operationQueue addOperation:op];

下载地址

热门软件

Top