mirror of
https://github.com/silkimen/cordova-plugin-advanced-http.git
synced 2026-04-24 00:00:03 +08:00
Add support for sending 'raw' requests on iOS too
This commit is contained in:
@@ -31,6 +31,7 @@
|
|||||||
</feature>
|
</feature>
|
||||||
</config-file>
|
</config-file>
|
||||||
<header-file src="src/ios/CordovaHttpPlugin.h"/>
|
<header-file src="src/ios/CordovaHttpPlugin.h"/>
|
||||||
|
<header-file src="src/ios/BinaryRequestSerializer.h"/>
|
||||||
<header-file src="src/ios/BinaryResponseSerializer.h"/>
|
<header-file src="src/ios/BinaryResponseSerializer.h"/>
|
||||||
<header-file src="src/ios/TextResponseSerializer.h"/>
|
<header-file src="src/ios/TextResponseSerializer.h"/>
|
||||||
<header-file src="src/ios/TextRequestSerializer.h"/>
|
<header-file src="src/ios/TextRequestSerializer.h"/>
|
||||||
@@ -43,6 +44,7 @@
|
|||||||
<header-file src="src/ios/AFNetworking/AFURLSessionManager.h"/>
|
<header-file src="src/ios/AFNetworking/AFURLSessionManager.h"/>
|
||||||
<header-file src="src/ios/SDNetworkActivityIndicator/SDNetworkActivityIndicator.h"/>
|
<header-file src="src/ios/SDNetworkActivityIndicator/SDNetworkActivityIndicator.h"/>
|
||||||
<source-file src="src/ios/CordovaHttpPlugin.m"/>
|
<source-file src="src/ios/CordovaHttpPlugin.m"/>
|
||||||
|
<source-file src="src/ios/BinaryRequestSerializer.m"/>
|
||||||
<source-file src="src/ios/BinaryResponseSerializer.m"/>
|
<source-file src="src/ios/BinaryResponseSerializer.m"/>
|
||||||
<source-file src="src/ios/TextResponseSerializer.m"/>
|
<source-file src="src/ios/TextResponseSerializer.m"/>
|
||||||
<source-file src="src/ios/TextRequestSerializer.m"/>
|
<source-file src="src/ios/TextRequestSerializer.m"/>
|
||||||
|
|||||||
@@ -0,0 +1,8 @@
|
|||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
#import "AFURLRequestSerialization.h"
|
||||||
|
|
||||||
|
@interface BinaryRequestSerializer : AFHTTPRequestSerializer
|
||||||
|
|
||||||
|
+ (instancetype)serializer;
|
||||||
|
|
||||||
|
@end
|
||||||
@@ -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
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
#import "CordovaHttpPlugin.h"
|
#import "CordovaHttpPlugin.h"
|
||||||
#import "CDVFile.h"
|
#import "CDVFile.h"
|
||||||
|
#import "BinaryRequestSerializer.h"
|
||||||
#import "BinaryResponseSerializer.h"
|
#import "BinaryResponseSerializer.h"
|
||||||
#import "TextResponseSerializer.h"
|
#import "TextResponseSerializer.h"
|
||||||
#import "TextRequestSerializer.h"
|
#import "TextRequestSerializer.h"
|
||||||
@@ -31,6 +32,8 @@
|
|||||||
manager.requestSerializer = [AFJSONRequestSerializer serializer];
|
manager.requestSerializer = [AFJSONRequestSerializer serializer];
|
||||||
} else if ([serializerName isEqualToString:@"utf8"]) {
|
} else if ([serializerName isEqualToString:@"utf8"]) {
|
||||||
manager.requestSerializer = [TextRequestSerializer serializer];
|
manager.requestSerializer = [TextRequestSerializer serializer];
|
||||||
|
} else if ([serializerName isEqualToString:@"raw"]) {
|
||||||
|
manager.requestSerializer = [BinaryRequestSerializer serializer];
|
||||||
} else {
|
} else {
|
||||||
manager.requestSerializer = [AFHTTPRequestSerializer serializer];
|
manager.requestSerializer = [AFHTTPRequestSerializer serializer];
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user