diff --git a/README.md b/README.md
index 5952f5a..be056c5 100644
--- a/README.md
+++ b/README.md
@@ -141,6 +141,8 @@ Examples
Respond with the given data and mime type (the mime type gets sent as the HTTP header `Content-Type`).
+If mimeType is nil, WebWiewProxy attempts to infer it from the request URL path extension.
+
Examples
NSString* greeting = @"Hi!";
@@ -151,6 +153,8 @@ Examples
Respond with the given data, mime type and HTTP status code (the mime type gets sent as the HTTP header `Content-Type`).
+If mimeType is nil, WebWiewProxy attempts to infer it from the request URL path extension.
+
Examples
NSData* data = [@"
Item has been created
" dataUsingEncoding:NSUTF8StringEncoding];
diff --git a/WebViewProxy/WebViewProxy.m b/WebViewProxy/WebViewProxy.m
index 1a911ef..4bedaaf 100644
--- a/WebViewProxy/WebViewProxy.m
+++ b/WebViewProxy/WebViewProxy.m
@@ -41,20 +41,21 @@ - (NSURLRequest *)request {
}
// High level API
- (void)respondWithImage:(UIImage *)image {
- NSURL* url = _protocol.request.URL;
- NSString* mimeType = nil;
NSData* data = nil;
- if ([url.pathExtension isEqualToString:@"jpg"] || [url.pathExtension isEqualToString:@"jpeg"]) {
+ NSString* mimeType = nil;
+ NSString* extension = self.request.URL.pathExtension;
+ if ([extension isEqualToString:@"jpg"] || [extension isEqualToString:@"jpeg"]) {
mimeType = @"image/jpg";
data = UIImageJPEGRepresentation(image, 1.0);
} else {
- if (![url.pathExtension isEqualToString:@"png"]) {
- NSLog(@"WARNING WebViewProxy respondWithImage called for unknown type \"%@\". Defaulting to image/png", url.absoluteString);
+ if (![extension isEqualToString:@"png"]) {
+ NSLog(@"WARNING WebViewProxy respondWithImage called for unknown type \"%@\". Defaulting to image/png", self.request.URL);
}
// Default to PNG
mimeType = @"image/png";
data = UIImagePNGRepresentation(image);
}
+
[self respondWithData:data mimeType:mimeType];
}
- (void)respondWithJSON:(NSDictionary *)jsonObject {
@@ -82,6 +83,18 @@ - (void)respondWithError:(NSInteger)statusCode text:(NSString *)text {
[self respondWithData:data mimeType:@"text/plain" statusCode:statusCode];
}
- (void)respondWithData:(NSData *)data mimeType:(NSString *)mimeType statusCode:(NSInteger)statusCode {
+ if (!mimeType) {
+ NSString* extension = _protocol.request.URL.pathExtension;
+ if ([extension isEqualToString:@"png"]) {
+ mimeType = @"image/png";
+ } else if ([extension isEqualToString:@"jpg"] || [extension isEqualToString:@"jpeg"]) {
+ mimeType = @"image/jpg";
+ } else if ([extension isEqualToString:@"woff"]) {
+ mimeType = @"font/woff";
+ } else if ([extension isEqualToString:@"ttf"]) {
+ mimeType = @"font/opentype";
+ }
+ }
if (![_headers objectForKey:@"Content-Type"]) {
[_headers setValue:mimeType forKey:@"Content-Type"];
}