AFNetWorking能做什么
- AFNetwork是一个轻量级的网络请求api类库。是以NSURLConnection, NSOperation和其它方法为基础的。
- 以下这个样例是用来处理json请求的:
- NSURL *url = [NSURL URLWithString:@"https://alpha-api.app.net/stream/0/posts/stream/global"];
- NSURLRequest *request = [NSURLRequest requestWithURL:url];
- AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) {
- NSLog(@"App.net Global Stream: %@", JSON);
- } failure:nil];
- [operation start];
- 用法:
- 1.下载AFNetwork, 点击下载
- 2.将目录名称为AFNetworking拖入到你的工程项目就可以
- 常见问题:
- 1. AFNetworking作用都有哪些?
- NSURLConnection 提供了+sendAsynchronousRequest:queue:completionHandler: 和+sendAsynchronousRequest:queue:completionHandler: ,可是AFNetworking提供了更好的功能
- *AFURLConnectionOperation和它的子类继承NSOperation的,同意请求被取消,暂停/恢复和由NSOperationQueue进行管理。
- *AFURLConnectionOperation也能够让你轻松得完毕上传和下载,处理验证。监控上传和下载进度,控制的缓存。
- *AFHTTPRequestOperation和它得子类能够基于http状态和 内容列下来区分是否成功请求了
- *AFNetworking能够将远程媒体数据类型(NSData)转化为可用的格式。比方如JSON,XML,图像和plist。
- *AFHTTPClient提供了一个方便的网络交互接口,包含默认头,身份验证。是否连接到网络,批量处理操作。查询字符串參数序列化。已经多种表单请求
- *的UIImageView+ AFNetworking添加了一个方便的方法来异步载入图像。
- 2. AFNetworking是否支持缓存?
- 能够。NSURLCache及其子类提供了非常多高级接口用于处理缓存
- 假设你想将缓存存储再磁盘,推荐使用SDURLCache
- 3.怎样使用AFNetworking上传一个文件?
- NSData *imageData = UIImagePNGRepresentation(image);
- NSURLRequest *request = [client multipartFormRequestWithMethod:@"POST" path:@"/upload" parameters:nil constructingBodyWithBlock: ^(id <AFMultipartFormData> formData) {
- [formData appendPartWithFileData:imageData mimeType:@"image/png" name:@"avatar"];
- }];
- 4.怎样使用AFNetworking下载一个文件?
- 先创建一个 AFURLConnectionOperation对象,然后再使用它的属性 outputStream进行处理
- operation.outputStream = [NSOutputStream outputStreamToFileAtPath:@"download.zip" append:NO];
- 5.怎样解决:SystemConfiguration framework not found in project
- 请导入:
- #import <SystemConfiguration/SystemConfiguration.h>
- #import <MobileCoreServices/MobileCoreServices.h>
- 6.当应用程序退出时。怎样保持持续的请求?
- AFURLConnectionOperation有一个叫 setShouldExecuteAsBackgroundTaskWithExpirationHandler:的方法用于处理在应用程序进入后台后,进行持续的请求
- [self setShouldExecuteAsBackgroundTaskWithExpirationHandler:^{
- }];
- 一些实例:
- 1.XML 请求
- NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://api.flickr.com/services/rest/?method=flickr.groups.browse&api_key=b6300e17ad3c506e706cb0072175d047&cat_id=34427469792%40N01&format=rest"]];
- AFXMLRequestOperation *operation = [AFXMLRequestOperation XMLParserRequestOperationWithRequest:request success:^(NSURLRequest *request, NSHTTPURLResponse *response, NSXMLParser *XMLParser) {
- XMLParser.delegate = self;
- [XMLParser parse];
- } failure:nil];
- [operation start];
- 2.图片请求:
- UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 100.0f, 100.0f)];
- [imageView setImageWithURL:[NSURL URLWithString:@"http://i.imgur.com/r4uwx.jpg"] placeholderImage:[UIImage imageNamed:@"placeholder-avatar"]];
- 3.图片上传处理,监測上传状态:
- didiwei 17:28:57
- NSURL *url = [NSURL URLWithString:@"http://api-base-url.com"];
- AFHTTPClient *httpClient = [[AFHTTPClient alloc] initWithBaseURL:url];
- NSData *imageData = UIImageJPEGRepresentation([UIImage imageNamed:@"avatar.jpg"], 0.5);
- NSMutableURLRequest *request = [httpClient multipartFormRequestWithMethod:@"POST" path:@"/upload" parameters:nil constructingBodyWithBlock: ^(id <AFMultipartFormData>formData) {
- [formData appendPartWithFileData:imageData name:@"avatar" fileName:@"avatar.jpg" mimeType:@"image/jpeg"];
- }];
- AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];
- [operation setUploadProgressBlock:^(NSUInteger bytesWritten, long long totalBytesWritten, long long totalBytesExpectedToWrite) {
- NSLog(@"Sent %lld of %lld bytes", totalBytesWritten, totalBytesExpectedToWrite);
- }];
- [operation start];
- 4.在线流媒体请求
- NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://localhost:8080/encode"]];
- AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];
- operation.inputStream = [NSInputStream inputStreamWithFileAtPath:[[NSBundle mainBundle] pathForResource:@"large-image" ofType:@"tiff"]];
- operation.outputStream = [NSOutputStream outputStreamToMemory];
- [operation start];
AFNetWorking能做什么的更多相关文章
- AFNetworking到底做了什么?(二)
接着上一篇的内容往下讲,如果没看过上一篇内容可以点这: AFNetworking到底做了什么? 之前我们讲到NSUrlSession代理这一块: 代理8: /* task完成之后的回调,成功和失败 ...
- AFNetworking到底做了什么
写在开头: 作为一个iOS开发,也许你不知道NSUrlRequest.不知道NSUrlConnection.也不知道NSURLSession...(说不下去了...怎么会什么都不知道...)但是你一定 ...
- AFNetworking之于https认证
写在开头: 本来这篇内容准备写在AFNetworking到底做了什么?(三)中的,但是因为我想在三中完结这个系列,碍于篇幅所限.并且这一块内容独立性比较强,所以单独拎出来,写成一篇. 本文从源码的角度 ...
- AFNetworking 之于 https 认证
写在开头: 本来这篇内容准备写在AFNetworking到底做了什么?(三)中的,但是因为我想在三中完结这个系列,碍于篇幅所限.并且这一块内容独立性比较强,所以单独拎出来,写成一篇. 本文从源码的角度 ...
- AFNetworking源码分析
来源:zongmumask 链接:http://www.jianshu.com/p/8eac5b1975de 简述 在iOS开发中,与直接使用苹果框架中提供的NSURLConnection或NSURL ...
- 【转】AFNetworking之于https认证
转自:http://www.cocoachina.com/ios/20161220/18393.html 写在开头: 本来这篇内容准备写在AFNetworking到底做了什么?(三)中的,但是因为我想 ...
- AFNetworking详解和相关文章链接
写在开头: 作为一个iOS开发,也许你不知道NSUrlRequest.不知道NSUrlConnection.也不知道NSURLSession...(说不下去了...怎么会什么都不知道...)但是你一定 ...
- iOS - Alamofire 网络请求
前言 Alamofire 是 Swift 语言的 HTTP 网络开发工具包,相当于 Swift 实现 AFNetworking 版本.当然,AFNetworking 非常稳定,在 Mac OSX 与 ...
- iOS开发下载文件速度计算
当我们写下载界面的时候,需要向用户展示每秒下载多少KB,这个时候就需要计算速度.如下: 我用的是AFNetworking来做下载的,我们拿AFHTTPRequestOperation来举列,AFHTT ...
随机推荐
- 李洪强和你一起学习前端之(9)规避脱标,CSS可见性,滑动门案例
1 复习昨天知识 1.1 浮动 特点: >浮动的元素不占位置(脱标) >可以将行内元素转化为行内块元素 >块级元素在一行上显示 >设置了浮动的元素,影响其后面的元素 作 ...
- 理解FlumeNG的batchSize和transactionCapacity参数和传输事务的原理 【转】
基于ThriftSource,MemoryChannel,HdfsSink三个组件,对Flume数据传输的事务进行分析,如果使用的是其他组件,Flume事务具体的处理方式将会不同. Flume的事务处 ...
- 【Android】事件输入系统-代码层次解读
本文基于Android-4.0 理论层次解读 请看:www.cnblogs.com/lcw/p/3373214.html 如何管理各种驱动设备 在理论中谈到EventHub,这个一看就是一个做实事的, ...
- strrchr()函数
函数简介 函数名称: strrchr 函数原型:char *strrchr(const char *str, char c); 所属库: string.h 函数功能:查找一个字符c在另一个字符串str ...
- 数据库表名最大长度(Oracle=30;SqlServer=128;)
1.Oracle 数据库 (支持30个字符) --30个字符 CREATE TABLE Tab_Test1234567890abcdefghijkl( ts int ); --select * fro ...
- liunx Swap 分区的作用
1.1 SWAP 概述 当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用.那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存 ...
- 基于HTML5功能强大的滑块幻灯片
分享一款功能强大的HTML5滑块幻灯片.这是一款基于jQuery+HTML5实现的图片切换幻灯片代码.效果图如下: 在线预览 源码下载 实现的代码. html代码: <section cla ...
- go语言可变参数的坑
0x00 前提 对可变参数不了解的同学,可以先看这篇文章可变参数终极指南 0x01 第一个坑 不能通过空接口类型向可变参数传递一个普通的切片 ,需要将普通切片转换为空接口切片 0x02 第二个坑 可变 ...
- Mac OS X上搭建Apache、PHP、MySQL的Web服务器
mac OS 系统太帅了,安装php的环境如此简单,大赞一个! 转载自http://jingyan.baidu.com/article/39810a23e1939fb636fda6a9.html 在M ...
- sphinx增量索引和主索引来实现索引的实时更新
项目中文章的信息内容因为持续有新增,而文章总量的基数又比较大,所以做搜索的时候,用了主索引+增量索引这种方式来实现索引的实时更新. 实现原理: 1. 新建一张表,记录一下上一次已经创建好索引的最后一条 ...