Skip to content

Commit 60e7deb

Browse files
author
Sefa Ilkimen
committed
Merge branch 'master' of https://github.com/robertocapuano/cordova-plugin-advanced-http into robertocapuano-master
2 parents c7820c8 + 5d5a859 commit 60e7deb

File tree

5 files changed

+80
-3
lines changed

5 files changed

+80
-3
lines changed

src/android/com/synconset/cordovahttp/CordovaHttp.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,11 @@ protected HttpRequest setupDataSerializer(HttpRequest request) throws JSONExcept
144144
if (new String("json").equals(this.getSerializerName())) {
145145
request.contentType(request.CONTENT_TYPE_JSON, request.CHARSET_UTF8);
146146
request.send(this.getParamsObject().toString());
147-
} else {
147+
} else if (new String("raw").equals(this.getSerializerName())) {
148+
// request.contentType(request.CONTENT_TYPE_JSON, request.CHARSET_UTF8);
149+
request.send(this.getParamsObject().toString());
150+
} else
151+
{
148152
request.form(this.getParamsMap());
149153
}
150154

src/ios/AFNetworking/AFURLRequestSerialization.h

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -375,6 +375,19 @@ forHTTPHeaderField:(NSString *)field;
375375

376376
@end
377377

378+
379+
#pragma mark -
380+
381+
/**
382+
`AFRAWRequestSerializer` is a subclass of `AFHTTPRequestSerializer`
383+
*/
384+
@interface AFRAWRequestSerializer : AFHTTPRequestSerializer
385+
386+
387+
+ (instancetype)serializer;
388+
389+
@end
390+
378391
#pragma mark -
379392

380393
/**

src/ios/AFNetworking/AFURLRequestSerialization.m

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1195,6 +1195,62 @@ - (instancetype)copyWithZone:(NSZone *)zone {
11951195

11961196
@end
11971197

1198+
1199+
#pragma mark -
1200+
1201+
@implementation AFRAWRequestSerializer
1202+
1203+
+ (instancetype)serializer
1204+
{
1205+
AFRAWRequestSerializer *serializer = [[self alloc] init];
1206+
return serializer;
1207+
}
1208+
1209+
#pragma mark - AFURLRequestSerialization
1210+
1211+
- (NSURLRequest *)requestBySerializingRequest:(NSURLRequest *)request
1212+
withParameters:(id)parameters
1213+
error:(NSError *__autoreleasing *)error
1214+
{
1215+
NSParameterAssert(request);
1216+
1217+
if ([self.HTTPMethodsEncodingParametersInURI containsObject:[[request HTTPMethod] uppercaseString]]) {
1218+
return [super requestBySerializingRequest:request withParameters:parameters error:error];
1219+
}
1220+
1221+
NSMutableURLRequest *mutableRequest = [request mutableCopy];
1222+
1223+
[self.HTTPRequestHeaders enumerateKeysAndObjectsUsingBlock:^(id field, id value, BOOL * __unused stop) {
1224+
if (![request valueForHTTPHeaderField:field]) {
1225+
[mutableRequest setValue:value forHTTPHeaderField:field];
1226+
}
1227+
}];
1228+
1229+
if (parameters) {
1230+
// if (![mutableRequest valueForHTTPHeaderField:@"Content-Type"]) {
1231+
// [mutableRequest setValue:@"application/xml" forHTTPHeaderField:@"Content-Type"];
1232+
// }
1233+
1234+
[mutableRequest setHTTPBody: [parameters dataUsingEncoding:NSUTF8StringEncoding]];
1235+
}
1236+
1237+
return mutableRequest;
1238+
}
1239+
1240+
#pragma mark - NSSecureCoding
1241+
1242+
- (instancetype)initWithCoder:(NSCoder *)decoder {
1243+
self = [super initWithCoder:decoder];
1244+
if (!self) {
1245+
return nil;
1246+
}
1247+
1248+
return self;
1249+
}
1250+
1251+
@end
1252+
1253+
11981254
#pragma mark -
11991255

12001256
@implementation AFJSONRequestSerializer

src/ios/CordovaHttpPlugin.m

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,11 @@ - (void)pluginInitialize {
2828
- (void)setRequestSerializer:(NSString*)serializerName forManager:(AFHTTPSessionManager*)manager {
2929
if ([serializerName isEqualToString:@"json"]) {
3030
manager.requestSerializer = [AFJSONRequestSerializer serializer];
31-
} else {
31+
} else
32+
if ([serializerName isEqualToString:@"raw"]) {
33+
manager.requestSerializer = [AFRAWRequestSerializer serializer];
34+
} else
35+
{
3236
manager.requestSerializer = [AFHTTPRequestSerializer serializer];
3337
}
3438
}

www/advanced-http.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
*/
3434

3535
var pluginId = module.id.slice(0, module.id.indexOf('.'));
36-
var validSerializers = ['urlencoded', 'json'];
36+
var validSerializers = ['urlencoded', 'json', 'raw' ];
3737

3838
var exec = require('cordova/exec');
3939
var angularIntegration = require(pluginId +'.angular-integration');

0 commit comments

Comments
 (0)