基于AFNetworking封装的网络请求工具类【转载】
2015-11-30 20:36
555 查看
今天给大家共享一个我自己封装的网络请求类,希望能帮助到大家。前提,导入AFNetworking框架,关于修改AFN源码:通常序列化时做对text/plan等的支持时,可以一劳永逸的修改源代码,在acceptableContentTypes中修改成如下即可:self.acceptableContentTypes =[NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript",@"image/png",@"text/html",nil];GGRequest.h#define JSON 100#define XML 101#define DATA 102#define kPOST 200#define kGET 201为了方便你的使用,建议你把这几个宏定义放在pch文件中,如果不知道pch文件是什么那就放在你将要做网络请求的类里面。
1 #import <Foundation/Foundation.h> 2 3 @interface GGRequest : NSObject 4 /** 5 * 网络请求方法 6 * 7 * @param url 将要访问的链接 8 * @param param 传入的参数 9 * @param requestStyle 请求方式 10 * @param serializer 数据返回形式 11 * @param success 请求成功后调用 12 * @param failure 请求失败后调用 13 */ 14 15 + (void)sendGetOrPostRequest:(NSString *)url param:(NSMutableDictionary *)param requestStyle:(NSInteger)requestStyle setSerializer:(NSInteger)serializer success:(void (^)(id data))success 16 failure:(void (^)(NSError *error))failure; 17 18 @endGGRequest.m
1 #import "GGRequest.h" 2 #import "AFNetworking.h" 4 #import "MBProgressHUD+MJ.h"//mj进一步封装的显示进程的类。 5 6 7 8 @implementation GGRequest 9 10 /** 11 * 网络请求方法 12 * 13 * @param url 将要访问的链接 14 * @param param 传入的参数 15 * @param requestStyle 请求方式 16 * @param serializer 数据返回形式 17 * @param success 请求成功后调用 18 * @param failure 请求失败后调用 19 */ 20 + (void)sendGetOrPostRequest:(NSString *)url param:(NSMutableDictionary *)param requestStyle:(NSInteger)requestStyle setSerializer:(NSInteger)serializer success:(void (^)(id data))success 21 failure:(void (^)(NSError *error))failure 22 { 23 // 创建请求 管理者 24 AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; 25 26 // 设置序列化器 27 switch(serializer) 28 { 29 case 100: 30 { 31 // manager.requestSerializer = [AFJSONRequestSerializer serializer]; 32 [manager setResponseSerializer:[AFJSONResponseSerializer serializer]];//默认(返回的是json并自动解析成数组或字典) 33 }break; 34 case 101: 35 { 36 37 [manager setResponseSerializer:[AFXMLParserResponseSerializer serializer]];//返回的是xml,afn不支持xml解析 38 }break; 39 case 102: 40 { 41 // manager.requestSerializer = [AFHTTPRequestSerializer serializer]; 42 [manager setResponseSerializer:[AFHTTPResponseSerializer serializer]];//返回的是data并自动解析成数组或字典 43 44 }break; 45 } 46 47 // 3.发送请求 48 if(requestStyle == 200) 49 { 50 [manager POST:url parameters:param success:^(AFHTTPRequestOperation *operation, id responseObject) 51 { 52 DLog(@"请求成功"); 53 DLog(@"返回的数据类型是:%@", [responseObject class]); 54 success(responseObject); 55 56 } failure:^(AFHTTPRequestOperation *operation, NSError *error) 57 { 58 DLog(@"请求失败"); 59 DLog(@"%@", error); 60 61 }]; 62 63 } 64 else if(requestStyle == 201) 65 { 66 [manager GET:url parameters:param success:^(AFHTTPRequestOperation *operation, id responseObject) { 67 DLog(@"请求成功"); 68 DLog(@"返回的数据类型是:%@", [responseObject class]); 69 DLog(@"%@", responseObject); 70 success(responseObject); 71 72 } failure:^(AFHTTPRequestOperation *operation, NSError *error) 73 { 74 DLog(@"请求失败"); 75 DLog(@"%@", error); 76 77 }]; 78 79 } 80 } 81 82 @end
终端中管理SVN服务器 上传、下载、更新
从服务器下载项目, 下面的命令意思是 将服务器中mycode仓库的内容下载到/Users/apple/Documents/test目录中 我的电脑名叫做MacBook,记得将这个名字改成你们的电脑名字,如果你桌面上没有命名为test的文件夹,自己键一个 ,或者自己制定一个路径用来保存下载的代码’svn checkout svn://192.168.88.181/mycode --username=mj --password=123 /Users/macbook/Desktop/test/ 192.168.88.181 这个位置可以写你电脑的IP地址,也可以用localhost 更新服务器端的代码到自己项目中SVN里面同一个软件的项目只有一个(刚开始一般只是框架),下载下来以后往自己的模块内敲代码,记得每敲一部分都update一下,update以后会将别人修改过的东西加入你所做的工程中,系统会判断是否冲突,如果冲突就要做一些取舍。 命令行很简单 就一句 svn update 上传修改过的代码 在步骤1中已经将服务器端的代码都下载到/Users/macbook/Desktop/test/目录中,现在修改下里面的一些代码,然后提交这些修改到服务器,PS:上传之前一定要update。1> 打开终端,先定位到/Users/apple/Documents/code目录,输入:cd /Users/apple/Documents/code2> 输入提交指令:svn commit -m "修改了main.m文件" PS:注释必须得写,要不然报错,写上你修改的内容就行这个指令会将/Users/macbook/Desktop/test/下的所有修改都同步到服务器端,同时会在终端打印出你修改的文件可以看到终端的打印信息:Sending weibo/weibo/main.mTransmitting file data .Committed revision 2.
原创地址:http://www.cnblogs.com/g-ios/p/4582183.html
相关文章推荐
- RTP-RTCP协议分析
- 基于AFNetworking的网络判断【转载】
- 安卓网络通信框架Volley学习(二)基于Volley高效加载网络图片
- https 双向认证开发实践
- TCP三次握手四次挥手
- iOS开发网络—数据安全
- Android: 网络请求Error,socket error可能原因之-1
- 基于AFNetworking封装的网络请求工具类
- 基于AFNetworking的网络判断
- 多人游戏用 TCP 还是UDP
- 网络层—网络层提供的两种服务
- 网络交换机Q&A
- [连载]《C#通讯(串口和网络)框架的设计与实现》- 7.外部接口的设计
- 修改系统的TIME_WAIT等待时间和其它的TCP属性
- malloc 能申请多大的空间 http://www.zhihu.com/question/20836462
- 修饰函数和函数返回值的const的差别 http://blog.chinaunix.net/uid-12673432-id-2923858.html
- iOS 用CornerStone配置SVN,HTTP及svn简单使用说明
- python3 基于urllib模块的网络编程
- Ubuntu Server Guide ☞ 联网 ☞ 网络配置
- http://elf8848.iteye.com/blog/1739596