基于AFNetworking封装的网络请求工具类【转载】

今天给大家共享一个我自己封装的网络请求类,希望能帮助到大家。

前提,导入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 
 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

你可能感兴趣的:(其他)