diff options
Diffstat (limited to 'StoneIsland/plugins/cordova-plugin-advanced-http/src/ios/TextRequestSerializer.m')
| -rw-r--r-- | StoneIsland/plugins/cordova-plugin-advanced-http/src/ios/TextRequestSerializer.m | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/StoneIsland/plugins/cordova-plugin-advanced-http/src/ios/TextRequestSerializer.m b/StoneIsland/plugins/cordova-plugin-advanced-http/src/ios/TextRequestSerializer.m new file mode 100644 index 00000000..31c1c2ed --- /dev/null +++ b/StoneIsland/plugins/cordova-plugin-advanced-http/src/ios/TextRequestSerializer.m @@ -0,0 +1,53 @@ +#import "TextRequestSerializer.h" + +@implementation TextRequestSerializer + ++ (instancetype)serializer +{ + TextRequestSerializer *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) { + if (![mutableRequest valueForHTTPHeaderField:@"Content-Type"]) { + [mutableRequest setValue:@"text/plain; charset=utf-8" forHTTPHeaderField:@"Content-Type"]; + } + + [mutableRequest setHTTPBody: [[parameters valueForKey:@"text"] dataUsingEncoding:NSUTF8StringEncoding]]; + } + + return mutableRequest; +} + +#pragma mark - NSSecureCoding + +- (instancetype)initWithCoder:(NSCoder *)decoder { + self = [super initWithCoder:decoder]; + if (!self) { + return nil; + } + + return self; +} + +@end |
