diff --git a/CGDWebServer/GCDWebServerResponse.h b/CGDWebServer/GCDWebServerResponse.h index ea77c04..985d3ac 100644 --- a/CGDWebServer/GCDWebServerResponse.h +++ b/CGDWebServer/GCDWebServerResponse.h @@ -63,10 +63,12 @@ + (GCDWebServerDataResponse*)responseWithHTML:(NSString*)html; + (GCDWebServerDataResponse*)responseWithHTMLTemplate:(NSString*)path variables:(NSDictionary*)variables; + (GCDWebServerDataResponse*)responseWithJSONObject:(id)object; ++ (GCDWebServerDataResponse*)responseWithJSONObject:(id)object contentType:(NSString*)type; - (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; +- (id)initWithJSONObject:(id)object contentType:(NSString*)type; @end @interface GCDWebServerFileResponse : GCDWebServerResponse diff --git a/CGDWebServer/GCDWebServerResponse.m b/CGDWebServer/GCDWebServerResponse.m index c3aaf3a..c838bb0 100644 --- a/CGDWebServer/GCDWebServerResponse.m +++ b/CGDWebServer/GCDWebServerResponse.m @@ -215,6 +215,10 @@ return ARC_AUTORELEASE([[self alloc] initWithJSONObject:object]); } ++ (GCDWebServerDataResponse*)responseWithJSONObject:(id)object contentType:(NSString*)type { + return ARC_AUTORELEASE([[self alloc] initWithJSONObject:object contentType:type]); +} + - (id)initWithText:(NSString*)text { NSData* data = [text dataUsingEncoding:NSUTF8StringEncoding]; if (data == nil) { @@ -246,12 +250,16 @@ } - (id)initWithJSONObject:(id)object { + return [self initWithJSONObject:object contentType:@"application/json"]; +} + +- (id)initWithJSONObject:(id)object contentType:(NSString*)type { NSData* data = [NSJSONSerialization dataWithJSONObject:object options:0 error:NULL]; if (data == nil) { ARC_RELEASE(self); return nil; } - return [self initWithData:data contentType:@"application/json"]; + return [self initWithData:data contentType:type]; } @end