Skip to content

Commit c9caf52

Browse files
committed
Supports HTTP methods: PUT, Delete, Head, Patch.
Print logs in example net task.
1 parent 9489c15 commit c9caf52

3 files changed

Lines changed: 46 additions & 17 deletions

File tree

STNetTaskQueue/STHTTPNetTask.h

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,11 @@
1010

1111
typedef enum {
1212
STHTTPNetTaskGet,
13-
STHTTPNetTaskPost
13+
STHTTPNetTaskPost,
14+
STHTTPNetTaskPut,
15+
STHTTPNetTaskDelete,
16+
STHTTPNetTaskHead,
17+
STHTTPNetTaskPatch
1418
} STHTTPNetTaskMethod;
1519

1620
@interface STHTTPNetTask : STNetTask

STNetTaskQueue/STHTTPNetTaskQueueHandler.m

Lines changed: 39 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -40,24 +40,47 @@ - (void)netTaskQueue:(STNetTaskQueue *)netTaskQueue task:(STNetTask *)task taskI
4040
STHTTPNetTask *httpTask = (STHTTPNetTask *)task;
4141
NSDictionary *parameters = [httpTask parameters];
4242

43-
if ([httpTask method] == STHTTPNetTaskGet) {
44-
[_httpManager GET:[httpTask uri] parameters:parameters success:success failure:failure];
45-
}
46-
else if ([httpTask method] == STHTTPNetTaskPost) {
47-
NSDictionary *datas = [httpTask datas];
48-
if (!datas.count) {
49-
[_httpManager POST:[httpTask uri] parameters:parameters success:success failure:failure];
43+
switch ([httpTask method]) {
44+
case STHTTPNetTaskGet: {
45+
[_httpManager GET:[httpTask uri] parameters:parameters success:success failure:failure];
5046
}
51-
else {
52-
[_httpManager POST:[httpTask uri] parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
53-
for (NSString *name in datas) {
54-
[formData appendPartWithFileData:datas[name] name:name fileName:@"st_file" mimeType:@"*/*"];
55-
}
56-
} success:success failure:failure];
47+
break;
48+
case STHTTPNetTaskPost: {
49+
NSDictionary *datas = [httpTask datas];
50+
if (!datas.count) {
51+
[_httpManager POST:[httpTask uri] parameters:parameters success:success failure:failure];
52+
}
53+
else {
54+
[_httpManager POST:[httpTask uri] parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
55+
for (NSString *name in datas) {
56+
[formData appendPartWithFileData:datas[name] name:name fileName:@"st_file" mimeType:@"*/*"];
57+
}
58+
} success:success failure:failure];
59+
}
5760
}
58-
}
59-
else {
60-
NSAssert(NO, @"Invalid STHTTPNetTaskMethod");
61+
break;
62+
case STHTTPNetTaskPut: {
63+
[_httpManager PUT:[httpTask uri] parameters:parameters success:success failure:failure];
64+
}
65+
break;
66+
case STHTTPNetTaskDelete: {
67+
[_httpManager DELETE:[httpTask uri] parameters:parameters success:success failure:failure];
68+
}
69+
break;
70+
case STHTTPNetTaskPatch: {
71+
[_httpManager PATCH:[httpTask uri] parameters:parameters success:success failure:failure];
72+
}
73+
break;
74+
case STHTTPNetTaskHead: {
75+
[_httpManager HEAD:[httpTask uri] parameters:parameters success:^(NSURLSessionDataTask *task) {
76+
[_queue didResponse:@{} taskId:taskId];
77+
} failure:failure];
78+
}
79+
break;
80+
default: {
81+
NSAssert(NO, @"Invalid STHTTPNetTaskMethod");
82+
}
83+
break;
6184
}
6285
}
6386

STNetTaskQueueExample/STOpenWeatherNetTask.m

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,14 @@ - (NSString *)uri
2222

2323
- (NSDictionary *)parameters
2424
{
25+
NSLog(@"Pack request parameters");
2526
return @{ @"lat": self.latitude,
2627
@"lon": self.longitude };
2728
}
2829

2930
- (void)didResponseJSON:(NSDictionary *)response
3031
{
32+
NSLog(@"Response: %@", response);
3133
_place = response[@"name"];
3234
_temperature = [response[@"main"][@"temp"] floatValue] / 10;
3335
}

0 commit comments

Comments
 (0)