首页 编程 软件学院 查看内容

基于AFNetworking封装的网络请求工具类

2015-6-17 12:46 2150 0

摘要: 前提,导入AFNetworking框架 关于修改AFN源码:通常序列化时做对text/plan等的支持时,可以一劳永逸的修改源代码,在acceptableContentTypes中修改即可。 GGRequest.h 1 #import Foundation/Foundation.h 2 3 @ ...
关键词: param serializer requestStyle success responseObject manager AFHTTPRequestOpe failure DLog GGRequest

前提,导入AFNetworking框架

关于修改AFN源码:通常序列化时做对text/plan等的支持时,可以一劳永逸的修改源代码,在acceptableContentTypes中修改即可。

GGRequest.h

 1 #import <Foundation/Foundation.h>
 2 
 3 @inte**ce 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"
 3 #import "Public.h"
 4 #import "MBProgressHUD+MJ.h"
 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
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部