Skip to content

Commit

Permalink
Added HEAD requests.
Browse files Browse the repository at this point in the history
  • Loading branch information
Mic Pringle committed May 22, 2012
1 parent 1b7f378 commit 3553f9b
Show file tree
Hide file tree
Showing 5 changed files with 28 additions and 3 deletions.
9 changes: 9 additions & 0 deletions Demo/Demo/DemoViewController.m
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,15 @@

@implementation DemoViewController

- (void)viewDidLoad {

[SVHTTPRequest HEAD:@"https://api.github.com/repos/samvermette/SVHTTPRequest"
parameters:nil
completion:^(id response, NSHTTPURLResponse *urlResponse, NSError *error) {
NSString *tag = [urlResponse.allHeaderFields objectForKey:@"ETag"];
NSLog(@"ETag for SVHTTPRequest: %@", [tag stringByTrimmingCharactersInSet:[NSCharacterSet punctuationCharacterSet]]);
}];
}

- (IBAction)watchersRequest {

Expand Down
2 changes: 2 additions & 0 deletions SVHTTPRequest/SVHTTPClient.h
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@
- (void)PUT:(NSString*)path parameters:(NSDictionary*)parameters completion:(void (^)(id response, NSHTTPURLResponse *urlResponse, NSError *error))completionBlock;
- (void)DELETE:(NSString*)path parameters:(NSDictionary*)parameters completion:(void (^)(id response, NSHTTPURLResponse *urlResponse, NSError *error))completionBlock;

- (void)HEAD:(NSString*)path parameters:(NSDictionary*)parameters completion:(void (^)(id response, NSHTTPURLResponse *urlResponse, NSError *error))completionBlock;

- (void)cancelRequestsWithPath:(NSString*)path;
- (void)cancelAllRequests;

Expand Down
4 changes: 4 additions & 0 deletions SVHTTPRequest/SVHTTPClient.m
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,10 @@ - (void)DELETE:(NSString *)path parameters:(NSDictionary *)parameters completion
[self queueRequest:path method:SVHTTPRequestMethodDELETE parameters:parameters saveToPath:nil progress:nil completion:completionBlock];
}

- (void)HEAD:(NSString *)path parameters:(NSDictionary *)parameters completion:(void (^)(id, NSHTTPURLResponse*, NSError*))completionBlock {
[self queueRequest:path method:SVHTTPRequestMethodHEAD parameters:parameters saveToPath:nil progress:nil completion:completionBlock];
}

#pragma mark - Operation Cancelling

- (void)cancelRequestsWithPath:(NSString *)path {
Expand Down
5 changes: 4 additions & 1 deletion SVHTTPRequest/SVHTTPRequest.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@ enum {
SVHTTPRequestMethodGET = 0,
SVHTTPRequestMethodPOST,
SVHTTPRequestMethodPUT,
SVHTTPRequestMethodDELETE
SVHTTPRequestMethodDELETE,
SVHTTPRequestMethodHEAD
};

typedef NSUInteger SVHTTPRequestMethod;
Expand All @@ -31,6 +32,8 @@ typedef NSUInteger SVHTTPRequestMethod;
+ (SVHTTPRequest*)PUT:(NSString*)address parameters:(NSDictionary*)parameters completion:(void (^)(id response, NSHTTPURLResponse *urlResponse, NSError *error))block;
+ (SVHTTPRequest*)DELETE:(NSString*)address parameters:(NSDictionary*)parameters completion:(void (^)(id response, NSHTTPURLResponse *urlResponse, NSError *error))block;

+ (SVHTTPRequest*)HEAD:(NSString*)address parameters:(NSDictionary*)parameters completion:(void (^)(id response, NSHTTPURLResponse *urlResponse, NSError *error))block;

- (SVHTTPRequest*)initWithAddress:(NSString*)urlString
method:(SVHTTPRequestMethod)method
parameters:(NSDictionary*)parameters
Expand Down
11 changes: 9 additions & 2 deletions SVHTTPRequest/SVHTTPRequest.m
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,12 @@ + (SVHTTPRequest*)DELETE:(NSString *)address parameters:(NSDictionary *)paramete
return requestObject;
}

+ (SVHTTPRequest*)HEAD:(NSString *)address parameters:(NSDictionary *)parameters completion:(void (^)(id, NSHTTPURLResponse *, NSError *))block {
SVHTTPRequest *requestObject = [[self alloc] initWithAddress:address method:SVHTTPRequestMethodHEAD parameters:parameters saveToPath:nil progress:nil completion:block];
[requestObject start];

return requestObject;
}

#pragma mark -

Expand Down Expand Up @@ -143,7 +149,8 @@ - (SVHTTPRequest*)initWithAddress:(NSString*)urlString method:(SVHTTPRequestMeth
[self.operationRequest setHTTPMethod:@"PUT"];
else if(method == SVHTTPRequestMethodDELETE)
[self.operationRequest setHTTPMethod:@"DELETE"];

else if(method == SVHTTPRequestMethodHEAD)
[self.operationRequest setHTTPMethod:@"HEAD"];
self.state = SVHTTPRequestStateReady;

return self;
Expand Down Expand Up @@ -191,7 +198,7 @@ - (void)addParametersToRequest:(NSDictionary*)paramsDict {

NSString *parameterString = [stringParameters componentsJoinedByString:@"&"];

if([method isEqualToString:@"GET"]) {
if([method isEqualToString:@"GET"] || [method isEqualToString:@"HEAD"]) {
NSString *baseAddress = self.operationRequest.URL.absoluteString;
baseAddress = [baseAddress stringByAppendingFormat:@"?%@", [stringParameters componentsJoinedByString:@"&"]];
[self.operationRequest setURL:[NSURL URLWithString:baseAddress]];
Expand Down

0 comments on commit 3553f9b

Please sign in to comment.