今天给大家共享一个我自己封装的网络请求类,希望能帮助到大家。
前提,导入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 @end
GGRequest.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/code
2> 输入提交指令:svn commit -m "修改了main.m文件" PS:注释必须得写,要不然报错,写上你修改的内容就行
这个指令会将/Users/macbook/Desktop/test/下的所有修改都同步到服务器端,同时会在终端打印出你修改的文件
可以看到终端的打印信息:
Sending weibo/weibo/main.m
Transmitting file data .
Committed revision 2.
原创地址:http://www.cnblogs.com/g-ios/p/4582183.html