您的位置:首页 > 理论基础 > 计算机网络

基于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 @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/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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: