diff --git a/plugin.xml b/plugin.xml
index 78d43a9..1bf0f73 100644
--- a/plugin.xml
+++ b/plugin.xml
@@ -31,6 +31,7 @@
+
@@ -43,6 +44,7 @@
+
diff --git a/src/ios/BinaryRequestSerializer.h b/src/ios/BinaryRequestSerializer.h
new file mode 100644
index 0000000..b9930a8
--- /dev/null
+++ b/src/ios/BinaryRequestSerializer.h
@@ -0,0 +1,8 @@
+#import
+#import "AFURLRequestSerialization.h"
+
+@interface BinaryRequestSerializer : AFHTTPRequestSerializer
+
++ (instancetype)serializer;
+
+@end
diff --git a/src/ios/BinaryRequestSerializer.m b/src/ios/BinaryRequestSerializer.m
new file mode 100644
index 0000000..16da68f
--- /dev/null
+++ b/src/ios/BinaryRequestSerializer.m
@@ -0,0 +1,49 @@
+#import "BinaryRequestSerializer.h"
+
+@implementation BinaryRequestSerializer
+
++ (instancetype)serializer
+{
+ BinaryRequestSerializer *serializer = [[self alloc] init];
+ return serializer;
+}
+
+#pragma mark - AFURLRequestSerialization
+
+- (NSURLRequest *)requestBySerializingRequest:(NSURLRequest *)request
+ withParameters:(id)parameters
+ error:(NSError *__autoreleasing *)error
+{
+ NSParameterAssert(request);
+
+ if ([self.HTTPMethodsEncodingParametersInURI containsObject:[[request HTTPMethod] uppercaseString]]) {
+ return [super requestBySerializingRequest:request withParameters:parameters error:error];
+ }
+
+ NSMutableURLRequest *mutableRequest = [request mutableCopy];
+
+ [self.HTTPRequestHeaders enumerateKeysAndObjectsUsingBlock:^(id field, id value, BOOL * __unused stop) {
+ if (![request valueForHTTPHeaderField:field]) {
+ [mutableRequest setValue:value forHTTPHeaderField:field];
+ }
+ }];
+
+ if (parameters) {
+ [mutableRequest setHTTPBody: parameters];
+ }
+
+ return mutableRequest;
+}
+
+#pragma mark - NSSecureCoding
+
+- (instancetype)initWithCoder:(NSCoder *)decoder {
+ self = [super initWithCoder:decoder];
+ if (!self) {
+ return nil;
+ }
+
+ return self;
+}
+
+@end
diff --git a/src/ios/CordovaHttpPlugin.m b/src/ios/CordovaHttpPlugin.m
index f77f0d9..df31126 100644
--- a/src/ios/CordovaHttpPlugin.m
+++ b/src/ios/CordovaHttpPlugin.m
@@ -1,5 +1,6 @@
#import "CordovaHttpPlugin.h"
#import "CDVFile.h"
+#import "BinaryRequestSerializer.h"
#import "BinaryResponseSerializer.h"
#import "TextResponseSerializer.h"
#import "TextRequestSerializer.h"
@@ -31,6 +32,8 @@
manager.requestSerializer = [AFJSONRequestSerializer serializer];
} else if ([serializerName isEqualToString:@"utf8"]) {
manager.requestSerializer = [TextRequestSerializer serializer];
+ } else if ([serializerName isEqualToString:@"raw"]) {
+ manager.requestSerializer = [BinaryRequestSerializer serializer];
} else {
manager.requestSerializer = [AFHTTPRequestSerializer serializer];
}