Skip to content

Commit

Permalink
Undo async calls. Refactor
Browse files Browse the repository at this point in the history
  • Loading branch information
GlennChiu committed Oct 31, 2012
1 parent 64ea8c0 commit bbf180e
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 45 deletions.
6 changes: 3 additions & 3 deletions GCNetworkRequest.h
Expand Up @@ -70,6 +70,9 @@ typedef enum : unsigned char


@protocol GCMultiPartFormData <NSObject> @protocol GCMultiPartFormData <NSObject>


- (void)addTextData:(NSString *)string
name:(NSString *)name;

- (void)addData:(NSData *)data - (void)addData:(NSData *)data
name:(NSString *)name; name:(NSString *)name;


Expand All @@ -85,7 +88,4 @@ typedef enum : unsigned char
name:(NSString *)name name:(NSString *)name
mimeType:(NSString *)mimeType; mimeType:(NSString *)mimeType;


- (void)addTextData:(NSString *)string
name:(NSString *)name;

@end @end
65 changes: 23 additions & 42 deletions GCNetworkRequest.m
Expand Up @@ -81,12 +81,12 @@ @implementation GCNetworkRequest


+ (GCNetworkRequest *)requestWithURLString:(NSString *)url + (GCNetworkRequest *)requestWithURLString:(NSString *)url
{ {
return [[[self class] alloc] initWithURLString:url HTTPMethod:nil parameters:nil encoding:0 multiPartFormDataHandler:nil]; return [[[self class] alloc] initWithURLString:url HTTPMethod:@"GET" parameters:nil encoding:GCParameterEncodingURL multiPartFormDataHandler:nil];
} }


+ (GCNetworkRequest *)requestWithURLString:(NSString *)url HTTPMethod:(NSString *)method parameters:(NSDictionary *)parameters + (GCNetworkRequest *)requestWithURLString:(NSString *)url HTTPMethod:(NSString *)method parameters:(NSDictionary *)parameters
{ {
return [[[self class] alloc] initWithURLString:url HTTPMethod:method parameters:parameters encoding:0 multiPartFormDataHandler:nil]; return [[[self class] alloc] initWithURLString:url HTTPMethod:method parameters:parameters encoding:GCParameterEncodingURL multiPartFormDataHandler:nil];
} }


+ (GCNetworkRequest *)requestWithURLString:(NSString *)url HTTPMethod:(NSString *)method parameters:(NSDictionary *)parameters encoding:(GCParameterEncoding)encoding + (GCNetworkRequest *)requestWithURLString:(NSString *)url HTTPMethod:(NSString *)method parameters:(NSDictionary *)parameters encoding:(GCParameterEncoding)encoding
Expand All @@ -96,7 +96,7 @@ + (GCNetworkRequest *)requestWithURLString:(NSString *)url HTTPMethod:(NSString


+ (GCNetworkRequest *)requestWithURLString:(NSString *)url parameters:(NSDictionary *)parameters multiPartFormDataHandler:(void(^)(id <GCMultiPartFormData> formData))block + (GCNetworkRequest *)requestWithURLString:(NSString *)url parameters:(NSDictionary *)parameters multiPartFormDataHandler:(void(^)(id <GCMultiPartFormData> formData))block
{ {
return [[[self class] alloc] initWithURLString:url HTTPMethod:@"POST" parameters:parameters encoding:0 multiPartFormDataHandler:block]; return [[[self class] alloc] initWithURLString:url HTTPMethod:@"POST" parameters:parameters encoding:GCParameterEncodingURL multiPartFormDataHandler:block];
} }


- (id)initWithURLString:(NSString *)url HTTPMethod:(NSString *)method parameters:(NSDictionary *)parameters encoding:(GCParameterEncoding)encoding multiPartFormDataHandler:(void(^)(id <GCMultiPartFormData> formData))block - (id)initWithURLString:(NSString *)url HTTPMethod:(NSString *)method parameters:(NSDictionary *)parameters encoding:(GCParameterEncoding)encoding multiPartFormDataHandler:(void(^)(id <GCMultiPartFormData> formData))block
Expand Down Expand Up @@ -136,29 +136,20 @@ - (id)initWithURLString:(NSString *)url HTTPMethod:(NSString *)method parameters
} }
else else
{ {
__block void(^multipart_blk)(id <GCMultiPartFormData>) = [block copy]; GCNetworkRequestMultiPartFormData *multiPartFormData = [[GCNetworkRequestMultiPartFormData alloc] initWithNetworkRequest:self];


dispatch_block_t blk = ^{ if (parameters)

{
GCNetworkRequestMultiPartFormData *multiPartFormData = [[GCNetworkRequestMultiPartFormData alloc] initWithNetworkRequest:self]; [parameters enumerateKeysAndObjectsUsingBlock:^(id key, id value, BOOL *stop) {


if (parameters) NSData *data = ([value isKindOfClass:[NSData class]]) ? value : GCUTF8EncodedStringToData([value description]);
{ [multiPartFormData addData:data name:[key description]];
[parameters enumerateKeysAndObjectsUsingBlock:^(id key, id value, BOOL *stop) { }];

}
NSData *data = ([value isKindOfClass:[NSData class]]) ? value : GCUTF8EncodedStringToData([value description]);
[multiPartFormData addData:data name:[key description]];
}];
}

multipart_blk(multiPartFormData);

[multiPartFormData finishMultiPartFormData];

multipart_blk = nil;
};


dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0ul), blk); block(multiPartFormData);

[multiPartFormData finishMultiPartFormData];
} }
} }
return self; return self;
Expand Down Expand Up @@ -187,28 +178,18 @@ - (NSString *)queryStringFromParameters:(NSDictionary *)parameters


- (void)URLEncodingFromParameters:(NSDictionary *)parameters - (void)URLEncodingFromParameters:(NSDictionary *)parameters
{ {
dispatch_block_t block = ^{ [self setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];

NSData *urlEncodedData = GCUTF8EncodedStringToData([self queryStringFromParameters:parameters]);
[self setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"]; if (!urlEncodedData) GCNRLog(@"Error: Encoding query URL parameters failed");
NSData *urlEncodedData = GCUTF8EncodedStringToData([self queryStringFromParameters:parameters]); [self setHTTPBody:urlEncodedData];
if (!urlEncodedData) GCNRLog(@"Error: Encoding query URL parameters failed");
[self setHTTPBody:urlEncodedData];
};

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0ul), block);
} }


- (void)JSONEncodingFromParameters:(NSDictionary *)parameters - (void)JSONEncodingFromParameters:(NSDictionary *)parameters
{ {
dispatch_block_t block = ^{ [self setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];

NSData *jsonData = [self dataFromJSON:parameters];
[self setValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
NSData *jsonData = [self dataFromJSON:parameters]; [self setHTTPBody:GCUTF8EncodedStringToData(jsonString)];
NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
[self setHTTPBody:GCUTF8EncodedStringToData(jsonString)];
};

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0ul), block);
} }


- (void)addQueryStringToURLWithURLString:(NSString *)url parameters:(NSDictionary *)parameters - (void)addQueryStringToURLWithURLString:(NSString *)url parameters:(NSDictionary *)parameters
Expand Down

0 comments on commit bbf180e

Please sign in to comment.