AFNetworkingパッケージに基づくネットワークリクエストツール類【オリジナル】
13134 ワード
今日は自分でカプセル化したネットワークリクエストクラスを共有して、皆さんに助けてほしいです.
前提として、AFNetworkingフレームワークを導入し、
AFNソースの修正について:通常シーケンス化時にtext/planなどのサポートを行う場合、ソースコードを一労永逸に修正することができ、acceptableContentTypeでは以下のように修正すればよい.
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ファイルが何なのか分からない場合は、ネットワークリクエストをするクラスに置くことをお勧めします.
GGRequest.m
転載先:https://www.cnblogs.com/g-ios/p/4582183.html
前提として、AFNetworkingフレームワークを導入し、
AFNソースの修正について:通常シーケンス化時にtext/planなどのサポートを行う場合、ソースコードを一労永逸に修正することができ、acceptableContentTypeでは以下のように修正すればよい.
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
転載先:https://www.cnblogs.com/g-ios/p/4582183.html