Added JSON support to GCDWebServerDataResponse

This commit is contained in:
Pierre-Olivier Latour
2014-03-29 09:21:23 -07:00
parent 120f6fc864
commit eac83a4d0d
2 changed files with 15 additions and 0 deletions
+2
View File
@@ -62,9 +62,11 @@
+ (GCDWebServerDataResponse*)responseWithText:(NSString*)text;
+ (GCDWebServerDataResponse*)responseWithHTML:(NSString*)html;
+ (GCDWebServerDataResponse*)responseWithHTMLTemplate:(NSString*)path variables:(NSDictionary*)variables;
+ (GCDWebServerDataResponse*)responseWithJSONObject:(id)object;
- (id)initWithText:(NSString*)text; // Encodes using UTF-8
- (id)initWithHTML:(NSString*)html; // Encodes using UTF-8
- (id)initWithHTMLTemplate:(NSString*)path variables:(NSDictionary*)variables; // Simple template system that replaces all occurences of "%variable%" with corresponding value (encodes using UTF-8)
- (id)initWithJSONObject:(id)object;
@end
@interface GCDWebServerFileResponse : GCDWebServerResponse
+13
View File
@@ -211,6 +211,10 @@
return ARC_AUTORELEASE([[self alloc] initWithHTMLTemplate:path variables:variables]);
}
+ (GCDWebServerDataResponse*)responseWithJSONObject:(id)object {
return ARC_AUTORELEASE([[self alloc] initWithJSONObject:object]);
}
- (id)initWithText:(NSString*)text {
NSData* data = [text dataUsingEncoding:NSUTF8StringEncoding];
if (data == nil) {
@@ -241,6 +245,15 @@
return response;
}
- (id)initWithJSONObject:(id)object {
NSData* data = [NSJSONSerialization dataWithJSONObject:object options:0 error:NULL];
if (data == nil) {
ARC_RELEASE(self);
return nil;
}
return [self initWithData:data contentType:@"application/json"];
}
@end
@implementation GCDWebServerFileResponse