AFNetworking教程
转:http://www.lanrenios.com/tutorials/network/2012/1126/527.html
AFNETWORKING
AFNetworking他是一个现在非常用得多的ios开发中网络开源库,它是非常的讨人喜欢的网络库,适用于iOS以及Mac OS X. 它构建于在(apple ios开发文档)NSURLConnection, NSOperation,
以及其他熟悉的Foundation技术之上. 它拥有良好的架构,丰富的api,以及模块化构建方式,使得使用起来非常轻松.
下面是一个得到json实例,他可以使用很轻松的方式从一个url来得到json数据:
NSURL *url = [NSURL URLWithString:@"http://api.twitter.com/1/statuses/public_timeline.json"]; |
|
NSURLRequest *request = [NSURLRequest requestWithURL:url]; |
|
AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) { |
|
NSLog(@"Public Timeline: %@", JSON); |
|
} failure:nil]; |
|
[operation start]; |
如何开始使用AFNETWORKING
- 首先需要下载 AFNetworking 然后尝试使用里面的例子
- 然后加入到自己的工程 然后需要简单的设置一下子 ,简单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中异步加载远程图片
例子程序
XML REQUEST
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]; |
IMAGE REQUEST
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"]]; |
API CLIENT REQUEST
// AFGowallaAPIClient is a subclass of AFHTTPClient, which defines the base URL and default HTTP headers for NSURLRequests it creates |
|
[[AFGowallaAPIClient sharedClient] getPath:@"/spots/9223" parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) { |
|
NSLog(@"Name: %@", [responseObject valueForKeyPath:@"name"]); |
|
NSLog(@"Address: %@", [responseObject valueForKeyPath:@"address.street_address"]); |
|
} failure:nil]; |
FILE UPLOAD WITH PROGRESS CALLBACK
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] autorelease]; |
|
[operation setUploadProgressBlock:^(NSInteger bytesWritten, long long totalBytesWritten, long long totalBytesExpectedToWrite) { |
|
NSLog(@"Sent %lld of %lld bytes", totalBytesWritten, totalBytesExpectedToWrite); |
|
}]; |
|
[operation start]; |
STREAMING REQUEST
art]; |
AFNetworking教程的更多相关文章
- AFNetworking 2.0教程
在iOS 7中,Apple更新了iOS中的网络基础架构,新推出的网络基础架构是NSURLSession(原来的网络基础架构NSURLConnection). iOS开发中往往会涉及网络数据处理,像其他 ...
- AFNetworking速成教程
转:http://palmsky.net/?p=4138 本文是由 iOS Tutorial 小组成员 Scott Sherwood撰写,他是一个基于位置动态加载(Dynamically Loaded ...
- AFNetworking 系列教程
前几天发现iOS9.xcode7之后NSURLConnection的API被弃用了,取而代之的是NSURLSession,看到这我首先想到了AFNetworking,因为工程的所有网络请求都是基于 ...
- ios cocopods 安装使用及高级教程
CocoaPods简介 每种语言发展到一个阶段,就会出现相应的依赖管理工具,例如Java语言的Maven,nodejs的npm.随着iOS开发者的增多,业界也出现了为iOS程序提供依赖管理的工具,它的 ...
- [转]CocoaPods安装和使用教程
转载地址:http://code4app.com/article/cocoapods-install-usage 目录 CocoaPods是什么? 如何下载和安装CocoaPods? 如何使用Coco ...
- << CocoaPods安装和使用教程 >>github code4app以及cocoachina 苹果官方文档
developer.apple.com 英文搜索各个技术的官方介绍文档, 前提是英文过关 cocoachina ios最新新闻, 信息 code4app上有许多组件 http://www.code4a ...
- 史上最详细的CocoaPods安装教程
虽然网上关于CocoaPods安装教程多不胜数,但是我在安装的过程中还是出现了很多错误,所以大家可以照下来步骤装一下,我相信会很好用. 前言 在iOS项目中使用第三方类库可以说是非常常见的事,但是要正 ...
- CocoaPods安装和使用教程(转摘)
Code4App 原创文章.转载请注明出处:http://code4app.com/article/cocoapods-install-usage 目录 CocoaPods是什么? 如何下载和安装Co ...
- CocoaPods安装和使用教程
Code4App 原创文章.转载请注明出处:http://code4app.com/article/cocoapods-install-usage 目录 CocoaPods是什么? 如何下载和安装Co ...
随机推荐
- uva 11029
看了别人的解法 发现了 modf 这个函数 取小数部分 /*********************************************************************** ...
- 15个实用的jQuery技术
JQuery是目前最流行的JavaScript框架之一,可以显著的提高用户与网络应用的交互. 今天为大家介绍50有用的jQuery技术: 1.移动Box 2.滑动框和标题 3.数据的可视化:使用HTM ...
- wordpress数据库优化-关闭日志修订
每次在wordpress网站修改文章的时候都会产生一个修订版本,wp_posts会产生一个post_type为“REVISIONS”的记录,修改次数一多的话,那修订版本就有几万条记录了 在functi ...
- 自定义nagios check_load告警阀值
自定义nagios check_load告警阀值 日期:2012-01-11 来源: heipark 分享至: - 默认check_load配置 define service{ use generi ...
- CodeForces369C On Changing Tree
昨天的CF自己太挫了.一上来看到A题,就有思路,然后马上敲,但是苦于自己很久没有敲计数的题了,许多函数都稍微回忆了一阵子.A题的主要做法就是将每个数质因数分解,统计每个质因子的个数,对于每个质因子pi ...
- poj 3067 Japan(线段树?,神奇卡时代码,暂未完)
题目 //暴力的,没什么算法的,被琪琪视为傻逼的代码: //照者学长的神奇幸运卡时代码,虽然能AC,但是中途wa,tle了那么多次,啥也不想说了 //学长威武,能想出sum必须要是—— __int64 ...
- DML、DDL、DCL区别
1.DML:数据操纵语言.执行完需要提交,有回滚. select.insert.update.delete.call explain plan :Oracle RDBMS执行每一条SQL语句,都必须经 ...
- 将集成spring的项目从tomcat上移植到weblogic下存在的问题
当在weblogic下部署时, 1.需要jersey-servlet-xx.jar,jersey-core-xx.jar,jersey-server-xx.jar: 2.在web.xml中全局参数co ...
- net中使用母版页
.net中使用母版页的优点 母版页提供了开发人员已通过传统方式创建的功能,这些传统方式包括重复复制现有代码.文本和控件元素:使用框架集:对通用元素使用包含文件:使用 ASP.NET 用户控件等.母版页 ...
- 对cost函数的概率解释
Likehood函数即似然函数,是概率统计中经常用到的一种函数,其原理网上很容易找到,这里就不讲了.这篇博文主要讲解Likelihood对回归模型的Probabilistic interpretati ...