网络请求工具--AFNetworking 分类: ios技术 2015-02-03 08:17 76人阅读 评论(0) 收藏
在我们开发过程中,网络请求是必不可少的,对于网络框架,现在主流的大概只有三类:ASI框架: HTTP终结者(已经停止更新了),MKNetworkKit ,AFN.今天我就来浅谈一下这个AFN
AFNetworing的使用
- (void)getJSON {
    //1.请求管理器
    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];  
    //2.发起请求
    [manager GET:@"http://localhost/videos.json" parameters:nil success: ^(AFHTTPRequestOperation *operation, id responseObject) {
        NSLog(@"%@", responseObject);
    } failure: ^(AFHTTPRequestOperation *operation, NSError *error) {
        NSLog(@"%@", error);
    }];
}  
/**
 *  不支持XML数据解析
 */
- (void)getXML {
    //1.管理器
    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];  
    //2.设置返回数据类型
    manager.responseSerializer = [AFXMLParserResponseSerializer serializer]; //先实例化一下  
    //3.发起请求
    [manager GET:@"http://localhost/videos.xml" parameters:nil success: ^(AFHTTPRequestOperation *operation, id responseObject) {
        NSLog(@"%@", responseObject);
    } failure: ^(AFHTTPRequestOperation *operation, NSError *error) {
        NSLog(@"%@", error);
    }];
}  
- (void)getPlist {
    //1.管理器
    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];  
    //2.设置response类型
    manager.responseSerializer = [AFPropertyListResponseSerializer serializer]; //是Response, 别写成request了. 修改为plist类型.
    manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"text/plain"]; //这个可以直接往框架里面修改.  
    //3.请求
    [manager GET:@"http://localhost/videos.plist" parameters:nil success: ^(AFHTTPRequestOperation *operation, id responseObject) {
        NSLog(@"%@", responseObject);
    } failure: ^(AFHTTPRequestOperation *operation, NSError *error) {
        NSLog(@"%@", error);
    }];
}  
- (void)uploadImageWithImage:(NSString *)imagePath
{
//上传其他所需参数
NSString *userId=XXXXXXXXXXX;
NSString *token=XXXXXXXXXXX; //上传请求POST
AFHTTPClient *client=[AFHTTPClient clientWithBaseURL:[NSURL URLWithString:@""]]; NSString *urlString=[NSString stringWithFormat:@"上传服务器地址];
NSDictionary *dic=[[NSDictionary alloc] initWithObjectsAndKeys:userId,@"XXXXXX",token,@"XXXXXX",nil]; NSURLRequest *request = [client multipartFormRequestWithMethod:@"POST" path:urlString parameters:dicconstructingBodyWithBlock:^(id<AFMultipartFormData> formData) { //得到需要上传的数据
NSData *data=[NSData dataWithContentsOfFile:imagePath]; //上传时使用当前的系统事件作为文件名
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"yyyyMMddHHmmss";
NSString *str = [formatter stringFromDate:[NSDate date]];
NSString *fileName = [NSString stringWithFormat:@"%@.jpg", str]; /*
此方法参数
1. 要上传的[二进制数据]
2. 对应网站上[upload.php中]处理文件的[字段"file"]
3. 要保存在服务器上的[文件名]
4. 上传文件的[mimeType]
*/ //服务器上传文件的字段和类型
[formData appendPartWithFileData:data name:@"XXXXX" fileName:fileNamemimeType:@"image/jpg/file"];
}]; // 3. operation包装的urlconnetion
AFHTTPRequestOperation *op = [[AFHTTPRequestOperation alloc] initWithRequest:request]; [op setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"上传完成");
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"上传失败->%@", error);
}]; //执行
[client.operationQueue addOperation:op];
}
版权声明:本文为博主原创文章,未经博主允许不得转载。
网络请求工具--AFNetworking 分类: ios技术 2015-02-03 08:17 76人阅读 评论(0) 收藏的更多相关文章
- A simple problem                                                       分类:            哈希             HDU             2015-08-06 08:06    1人阅读    评论(0)    收藏
		
A simple problem Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) To ...
 - 架构师速成5.1-小学gtd进阶                                                    分类:            架构师速成             2015-06-26 21:17    313人阅读    评论(0)    收藏
		
人生没有理想,那和咸鱼有什么区别. 有了理想如何去实现,这就是gtd需要解决的问题.简单说一下gtd怎么做? 确定你的目标,如果不能确定长期目标,至少需要一个2年到3年的目标. 目标必须是可以衡量的, ...
 - 苹果应用商店AppStore审核中文指南                                                    分类:            ios相关             app相关             2015-07-27 15:33    84人阅读    评论(0)    收藏
		
目录 1. 条款与条件 2. 功能 3. 元数据.评级与排名 4. 位置 5. 推送通知 6. 游戏中心 7. 广告 8. 商标与商业外观 9. 媒体内容 10. 用户界面 11. 购买与货币 12. ...
 - Mahout快速入门教程                                                    分类:            B10_计算机基础             2015-03-07 16:20    508人阅读    评论(0)    收藏
		
Mahout 是一个很强大的数据挖掘工具,是一个分布式机器学习算法的集合,包括:被称为Taste的分布式协同过滤的实现.分类.聚类等.Mahout最大的优点就是基于hadoop实现,把很多以前运行于单 ...
 - iOS8 UISearchViewController搜索功能讲解                                                    分类:            ios技术             2015-07-14 10:23    76人阅读    评论(0)    收藏
		
在iOS8以前我们实现搜索功能需要用到UISearchbar和UISearchDisplayController, 在iOS8之后呢, UISearchController配合UITableView的 ...
 - iOS搜索框UISearchBar                                                    分类:            ios技术             2015-04-03 08:55    82人阅读    评论(0)    收藏
		
当你在seachBar中输入字母之前的时候,只是用鼠标选中searchBar的时候,如图 终端输出截图如下:(这个时候调用先shouldBeginEditing,之后调用didBeginEditing ...
 - 总结分享十大iOS开发者最喜爱的库                                                    分类:            ios相关             app相关             2015-04-03 16:43    320人阅读    评论(0)    收藏
		
该10大iOS开发者最喜爱的库由"iOS辅导团队"成员Marcelo Fabri组织投票选举而得,参与者包括开发者团队,iOS辅导团队以及行业嘉宾.每个团队都要根据以下规则选出五个 ...
 - 三大主流ETL工具选型                                                    分类:            H2_ORACLE             2013-08-23 11:17    426人阅读    评论(0)    收藏
		
ETL(extract, transform and load)产品乍看起来似乎并不起眼,单就此项技术本身而言,几乎也没什么特别深奥之处,但是在实际项目中,却常常在这个环节耗费太多的人力,而在后续的维 ...
 - iOS 生产证书                                                    分类:            ios相关             app相关             2015-05-22 14:49    175人阅读    评论(0)    收藏
		
首先登陆https://developer.apple.com(99美元账号) 选择iOS Developer program 板块下的 Certificates,Identifiers & ...
 
随机推荐
- 空指针错误 java.lang.NullPointerException
			
使用基本的JAVA数据类型,变量的值要么已经是默认值,如果没有对其正常赋值,程序便 不能通过编译,因此使用基本的JAVA数据类型(double,float,boolean,char,int,long) ...
 - java 对象的组合,一个类组合到另一个类中(例如手机卡装到手机上)
			
Example4_9.java public class Example4_9 { public static void main(String args[]) { SIM simOne = new ...
 - 破解SharpPlus Sqlite Develope[转]
			
1.运行里输入regedit,打开注册表 2.编辑->查找,输入sqlite 查找结果如下 3.直接删除SqliteDev节点就可以了,重新打开Sqlite Developer就可以用了,当然还 ...
 - Java类锁和对象锁实践(good)
			
一.前言 之前对类锁和对象锁是否是互斥的不是太确定,因此决定编写相关的程序进行实践一下.编写前对相关定义约定约定如下: 1. 类锁:在代码中的方法上加了static和synchronized的锁,或者 ...
 - 在程序中用new ClassPathXmlApplicationContext()的注意事项
			
http://blog.csdn.net/budapest/article/details/38493003
 - ztree异步加载
			
Ztree异步加载的意思就是: 当点击展开树节点时,才去请求后台action返回点击节点的子节点数据并加载. 直接贴代码(SpringMvc+Mybatis): 前台页面ztreeList.jsp: ...
 - led.c驱动框架
			
Makefile: obj-m += led.o ################################################ KERNEL = /home/linux--FS21 ...
 - UVA 10304 Optimal Binary Search Tree
			
简单区间DP. #include<cstdio> #include<cstring> #include<cmath> #include<vector> ...
 - dedecms 的这个dede:arclist里怎么调用全局变量?
			
将{dede:global.cfg_templets_skin/} 写为 [field:global.cfg_templets_skin/] 即可.
 - javascript中的原型继承
			
在Javascript面向对象编程中,原型继承不仅是一个重点也是一个不容易掌握的点.在本文中,我们将对Javascript中的原型继承进行一些探索. 基本形式 我们先来看下面一段代码: <cod ...