Skip to content

Commit

Permalink
Add
Browse files Browse the repository at this point in the history
  • Loading branch information
xzjxylophone committed May 30, 2016
1 parent b128f6d commit 0174e52
Show file tree
Hide file tree
Showing 14 changed files with 154 additions and 13 deletions.
2 changes: 1 addition & 1 deletion AFNetworking+RX.podspec
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

Pod::Spec.new do |s|
s.name = "AFNetworking+RX"
s.version = "3.1.0.5"
s.version = "3.1.0.6"
s.license = "MIT"
s.summary = "AFNetworking+RX is a simple ext of AFNetworking"
s.homepage = "https://github.com/xzjxylophone/AFNetworking-RX"
Expand Down
1 change: 1 addition & 0 deletions AFNetworking-RX/AFNetworking+RXHeader.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@



#import "RXAFNetworkingDefine.h"

// manager
#import "RXNetworkingConfigManager.h"
Expand Down
22 changes: 22 additions & 0 deletions AFNetworking-RX/RXAFNetworkingDefine.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
//
// RXAFNetworkingDefine.h
// AFNetworking-RXExample
//
// Created by ceshi on 16/5/30.
// Copyright © 2016年 Rush. All rights reserved.
//

#ifndef RXAFNetworkingDefine_h
#define RXAFNetworkingDefine_h

// 输出url地址和参数
#ifndef k_RX_SwitchLog_URL_Parameter
#define k_RX_SwitchLog_URL_Parameter 1
#endif

// 输出调试信息
#ifndef k_RX_SwitchLog_Debug
#define k_RX_SwitchLog_Debug 0
#endif

#endif /* RXAFNetworkingDefine_h */
5 changes: 4 additions & 1 deletion AFNetworking-RX/RXAFNetworkingGlobal.h
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,10 @@
//

#import <Foundation/Foundation.h>
FOUNDATION_EXPORT void RXAFnetworkingLog(NSString *format, ...) NS_FORMAT_FUNCTION(1,2);
FOUNDATION_EXPORT void RXAFnetworkingDebugLog(NSString *format, ...) NS_FORMAT_FUNCTION(1,2);


FOUNDATION_EXPORT void RXAFnetworkingPrintUrlAndParameters(NSString *format, ...) NS_FORMAT_FUNCTION(1,2);



Expand Down
22 changes: 21 additions & 1 deletion AFNetworking-RX/RXAFNetworkingGlobal.m
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,37 @@
//

#import "RXAFNetworkingGlobal.h"
void RXAFnetworkingLog(NSString *format, ...)

#import "RXAFNetworkingDefine.h"
void RXAFnetworkingDebugLog(NSString *format, ...)
{

#ifdef DEBUG
#if k_RX_SwitchLog_Debug
va_list argptr;
va_start(argptr, format);
NSLogv(format, argptr);
va_end(argptr);
#endif
#endif
}

void RXAFnetworkingPrintUrlAndParameters(NSString *format, ...)
{

#ifdef DEBUG
#if k_RX_SwitchLog_URL_Parameter
va_list argptr;
va_start(argptr, format);
NSLogv(format, argptr);
va_end(argptr);
#endif
#endif
}




@implementation RXAFNetworkingGlobal


Expand Down
5 changes: 5 additions & 0 deletions AFNetworking-RX/RXBaseRequest.h
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,11 @@ typedef void(^RXRequestCompletionBlock)(RXBaseRequest *request);
@property (nonatomic, readonly) E_RXRequestMethod e_RXRequestMethod;
// default [NSDictionary dictionary]
@property (nonatomic, readonly) NSDictionary *requestParameters;
// default RXNetworkingConfigManager suffixParameters
@property (nonatomic, readonly) NSDictionary *suffixParameters;

// requestParameters add suffixParameters
@property (nonatomic, readonly) NSDictionary *reallyParameters;


@property (nonatomic, strong) RXBaseResponse *response;
Expand Down
37 changes: 33 additions & 4 deletions AFNetworking-RX/RXBaseRequest.m
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
#import "RXNetworkingConfigManager.h"
#import "RXAFNetworkingGlobal.h"
#import "RXBaseResponse.h"
#import "RXAFNetworkingDefine.h"



Expand Down Expand Up @@ -62,11 +63,18 @@ - (void)startWithCompletion:(RXRequestCompletionBlock)completion group:(dispatch
self.httpSessionManager.completionQueue = queue;
}



NSString *str = [RXAFNetworkingGlobal parametersFromDictionary:self.reallyParameters];
RXAFnetworkingPrintUrlAndParameters(@"url:%@/%@ parameters:%@", self.baseUrlString, self.requestUrlString, str);



switch (self.e_RXRequestMethod) {
case kE_RXRequestMethod_Get:
{
[[RXNetworkingConfigManager sharedInstance] configGetHttpSessionManager:self.httpSessionManager timeoutInterval:self.timeoutInterval parameters:weakSelf.requestParameters];
[self.httpSessionManager GET:self.requestUrlString parameters:weakSelf.requestParameters progress:^(NSProgress * _Nonnull downloadProgress) {
[[RXNetworkingConfigManager sharedInstance] configGetHttpSessionManager:self.httpSessionManager timeoutInterval:self.timeoutInterval parameters:weakSelf.reallyParameters];
[self.httpSessionManager GET:self.requestUrlString parameters:weakSelf.reallyParameters progress:^(NSProgress * _Nonnull downloadProgress) {
// Do Noting
} success:^(NSURLSessionDataTask *task, id responseObject) {
[weakSelf analysisInOtherRunLoopWithResponseObject:responseObject error:nil group:group];
Expand All @@ -80,14 +88,16 @@ - (void)startWithCompletion:(RXRequestCompletionBlock)completion group:(dispatch
{
[[RXNetworkingConfigManager sharedInstance] configPostHttpSessionManager:self.httpSessionManager timeoutInterval:self.timeoutInterval];

[self.httpSessionManager POST:self.requestUrlString parameters:self.requestParameters constructingBodyWithBlock:self.constructingBodyBlock progress:self.uploadProgress success:^(NSURLSessionDataTask *task, id responseObject) {
[self.httpSessionManager POST:self.requestUrlString parameters:self.reallyParameters constructingBodyWithBlock:self.constructingBodyBlock progress:self.uploadProgress success:^(NSURLSessionDataTask *task, id responseObject) {
[weakSelf analysisInOtherRunLoopWithResponseObject:responseObject error:nil group:group];
} failure:^(NSURLSessionDataTask *task, NSError * error) {
[weakSelf analysisInOtherRunLoopWithResponseObject:nil error:error group:group];
}];
}
break;
}


}


Expand All @@ -113,7 +123,7 @@ - (void)analysisInOtherRunLoopWithResponseObject:(id)responseObject error:(NSErr
- (void)dealloc
{
// 可以正常释放
RXAFnetworkingLog(@"base request dealloc");
RXAFnetworkingDebugLog(@"base request dealloc");
}


Expand Down Expand Up @@ -151,6 +161,25 @@ - (NSDictionary *)requestParameters
{
return [NSDictionary dictionary];
}
- (NSDictionary *)suffixParameters
{
return [RXNetworkingConfigManager sharedInstance].suffixParameters;
}
- (NSDictionary *)reallyParameters
{
NSDictionary *dic1 = self.requestParameters;
NSDictionary *dic2 = self.suffixParameters;
NSMutableDictionary *result = nil;
if (dic1) {
result = [NSMutableDictionary dictionaryWithDictionary:dic1];
} else {
result = [NSMutableDictionary dictionary];
}
if (dic2 != nil) {
[result setValuesForKeysWithDictionary:dic2];
}
return result;
}
- (NSTimeInterval)timeoutInterval
{
return [RXNetworkingConfigManager sharedInstance].timeoutInterval;
Expand Down
2 changes: 1 addition & 1 deletion AFNetworking-RX/RXBatchRequestObject.m
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ - (id)initWithRequestArray:(NSArray *)requestArray
}
- (void)dealloc
{
RXAFnetworkingLog(@"batch request object dealloc");
RXAFnetworkingDebugLog(@"batch request object dealloc");
}

- (void)startWithCompletion:(void (^)(RXBatchRequestObject *batchRequest))completion
Expand Down
4 changes: 4 additions & 0 deletions AFNetworking-RX/RXNetworkingConfigManager.h
Original file line number Diff line number Diff line change
Expand Up @@ -31,11 +31,15 @@ typedef NS_ENUM(NSInteger, E_RX_NetworkExceptionType) {
@property (nonatomic, assign) NSTimeInterval timeoutInterval;



// resultCodeKey default @"code"
@property (nonatomic, copy) NSString *resultCodeKey;
// resultMsgKey default @"msg"
@property (nonatomic, copy) NSString *resultMsgKey;

// defautl [NSDictionary dictionary]
@property (nonatomic, strong) NSDictionary *suffixParameters;



// 正确的返回值, default 0
Expand Down
13 changes: 10 additions & 3 deletions AFNetworking-RX/RXNetworkingConfigManager.m
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,12 @@
#import "RXBaseRequest.h"
#import "RXAFNetworkingGlobal.h"
#import "RXBaseResponse.h"
#import "RXAFNetworkingDefine.h"


// 调试信息
#define k_RX_RunloopDebug 0

@interface RXNetworkingConfigManager ()

@property (nonatomic, strong) NSMutableArray *requestArray;
Expand All @@ -30,6 +36,7 @@ - (id)init
self.resultMsgKey = @"msg";
self.resultCodeKey = @"code";
self.successResultCode = 0;
self.suffixParameters = [NSDictionary dictionary];


self.networkErrorMsg = @"网络错误";
Expand Down Expand Up @@ -243,15 +250,15 @@ + (void)analysisInOtherRunLoopWithRequest:(RXBaseRequest *)request responseObjec

+ (void)printMainAndCurrentRunLoopInfoWithDes:(NSString *)des
{
#if DEBUG

#if k_RX_RunloopDebug
CFRunLoopRef mainRunLoopRef = CFRunLoopGetMain();
CFStringRef mainStringRef = CFRunLoopCopyCurrentMode(mainRunLoopRef);
CFRunLoopRef curRunLoopRef = CFRunLoopGetCurrent();
CFStringRef curStringRef = CFRunLoopCopyCurrentMode(curRunLoopRef);

NSLog(@"%@ main:%p:%@ cur:%p:%@", des, mainRunLoopRef, (__bridge NSString *)mainStringRef, curRunLoopRef, (__bridge NSString *)curStringRef);

#endif

}


Expand Down
46 changes: 46 additions & 0 deletions AFNetworking-RX/RXSimpleHttpManager.m
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@
#import "RXNetworkingConfigManager.h"
#import "RXAFNetworkingGlobal.h"
#import "RXBaseResponse.h"
#import "RXNetworkingConfigManager.h"


@interface RXSimpleHttpManager ()

Expand Down Expand Up @@ -60,6 +62,12 @@ + (id)uploadWithSessionId:(NSString *)sessionId type:(NSInteger)type image:(UIIm

+ (id)getActionWithUrl:(NSString *)url parameters:(NSDictionary *)parameters completion:(void (^)(RXBaseResponse *response))completion
{

parameters = [self mergerSuffixWithDictionary:parameters];




RXSimpleHttpManager *http = [[self alloc] init];
NSTimeInterval timeoutInterval = [RXNetworkingConfigManager sharedInstance].timeoutInterval;
[[RXNetworkingConfigManager sharedInstance] configGetHttpSessionManager:http.httpSessionManager timeoutInterval:timeoutInterval parameters:parameters];
Expand All @@ -70,6 +78,12 @@ + (id)getActionWithUrl:(NSString *)url parameters:(NSDictionary *)parameters com
} failure:^(NSURLSessionDataTask *task, NSError *error) {
[RXSimpleHttpManager resultWithResponseObject:nil error:error completion:completion];
}];




[self printURL:url parameters:parameters];

return http;

}
Expand All @@ -78,6 +92,12 @@ + (id)getActionWithUrl:(NSString *)url parameters:(NSDictionary *)parameters com

+ (id)postActionWithUrl:(NSString *)url parameters:(NSDictionary *)parameters completion:(void (^)(RXBaseResponse *response))completion
{




parameters = [self mergerSuffixWithDictionary:parameters];

RXSimpleHttpManager *http = [[self alloc] init];
NSTimeInterval timeoutInterval = [RXNetworkingConfigManager sharedInstance].timeoutInterval;
[[RXNetworkingConfigManager sharedInstance] configPostHttpSessionManager:http.httpSessionManager timeoutInterval:timeoutInterval];
Expand All @@ -90,6 +110,7 @@ + (id)postActionWithUrl:(NSString *)url parameters:(NSDictionary *)parameters co
} failure:^(NSURLSessionDataTask *task, NSError *error) {
[RXSimpleHttpManager resultWithResponseObject:nil error:error completion:completion];
}];
[self printURL:url parameters:parameters];
return http;
}

Expand All @@ -98,15 +119,40 @@ + (id)postActionWithUrl:(NSString *)url parameters:(NSDictionary *)parameters co

+ (id)postActionWithUrl:(NSString *)url parameters:(NSDictionary *)parameters image:(UIImage *)image constructingBodyBlock:(void (^)(id<AFMultipartFormData> formData))constructingBodyBlock progress:(void (^)(NSProgress *progress))progress completion:(void (^)(RXBaseResponse *response))completion
{
parameters = [self mergerSuffixWithDictionary:parameters];
RXSimpleHttpManager *http = [[self alloc] init];
[http.httpSessionManager POST:url parameters:parameters constructingBodyWithBlock:constructingBodyBlock progress:progress success:^(NSURLSessionDataTask *task, id responseObject) {
[RXSimpleHttpManager resultWithResponseObject:responseObject error:nil completion:completion];
} failure:^(NSURLSessionDataTask *task, NSError *error) {
[RXSimpleHttpManager resultWithResponseObject:nil error:error completion:completion];
}];
[self printURL:url parameters:parameters];
return http;
}

+ (NSDictionary *)mergerSuffixWithDictionary:(NSDictionary *)dic
{
NSDictionary *dic1 = dic;
NSDictionary *dic2 = [RXNetworkingConfigManager sharedInstance].suffixParameters;
NSMutableDictionary *resultParameters = nil;
if (dic1) {
resultParameters = [NSMutableDictionary dictionaryWithDictionary:dic1];
} else {
resultParameters = [NSMutableDictionary dictionary];
}
if (dic2 != nil) {
[resultParameters setValuesForKeysWithDictionary:dic2];
}
return resultParameters;
}

+ (void)printURL:(NSString *)url parameters:(NSDictionary *)parameters
{
NSString *host = [RXNetworkingConfigManager sharedInstance].baseUrlString;
url = [NSString stringWithFormat:@"%@/%@", host, url];
NSString *str = [RXAFNetworkingGlobal parametersFromDictionary:parameters];
RXAFnetworkingPrintUrlAndParameters(@"url:%@ paramters:%@", url, str);
}

#pragma mark - Public

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@
C90D14B41CFC2B4000461480 /* RXBatchRequestObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RXBatchRequestObject.m; sourceTree = "<group>"; };
C90D14B81CFC2B5200461480 /* RXBaseResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RXBaseResponse.h; sourceTree = "<group>"; };
C90D14B91CFC2B5200461480 /* RXBaseResponse.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RXBaseResponse.m; sourceTree = "<group>"; };
C90D14BB1CFC3A8F00461480 /* RXAFNetworkingDefine.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RXAFNetworkingDefine.h; sourceTree = "<group>"; };
C96B0E631CEEB5CE00B01976 /* RTSimpleHttpManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RTSimpleHttpManager.h; sourceTree = "<group>"; };
C96B0E641CEEB5CE00B01976 /* RTSimpleHttpManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RTSimpleHttpManager.m; sourceTree = "<group>"; };
C96B0E661CEEFB9B00B01976 /* RTUploadPicRequest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RTUploadPicRequest.h; sourceTree = "<group>"; };
Expand Down Expand Up @@ -188,6 +189,7 @@
C9F53E171CE1CB7600BF6E1F /* AFNetworking+RXHeader.h */,
C9F53E1D1CE1DD1600BF6E1F /* RXAFNetworkingGlobal.h */,
C9F53E1E1CE1DD1600BF6E1F /* RXAFNetworkingGlobal.m */,
C90D14BB1CFC3A8F00461480 /* RXAFNetworkingDefine.h */,
);
name = "AFNetworking-RX";
path = "../AFNetworking-RX";
Expand Down
2 changes: 2 additions & 0 deletions AFNetworking-RXExample/AFNetworking-RXExample/AppDelegate.m
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,8 @@ - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(
cm.timeoutInterval = 45;
cm.resultCodeKey = @"status";
cm.resultMsgKey = @"msg";
cm.suffixParameters = @{@"type":@"iOS",
@"version":@"1.01"};
cm.customServerResultAction = ^(NSInteger code) {
NSLog(@"customServerResultAction code:%zd", code);
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,7 @@ - (void)viewDidLoad {
// [self performSelector:@selector(testOneRequest2) withObject:nil afterDelay:1];


[self performSelector:@selector(testSimple02) withObject:nil afterDelay:1];
// [self performSelector:@selector(testOneRequest1) withObject:nil afterDelay:1];


// [self performSelector:@selector(testUpload01) withObject:nil afterDelay:1];
Expand All @@ -172,7 +172,7 @@ - (void)viewDidLoad {
// [self performSelector:@selector(testUpload02) withObject:nil afterDelay:1];


// [self performSelector:@selector(testSendSMS001) withObject:nil afterDelay:1];
[self performSelector:@selector(testSimple02) withObject:nil afterDelay:1];



Expand Down

0 comments on commit 0174e52

Please sign in to comment.