From ebd6ae9793b0a109c728ba035cd22fb6f87b1f7d Mon Sep 17 00:00:00 2001 From: Chris J Date: Thu, 20 Dec 2018 10:47:13 -0500 Subject: [PATCH 1/2] Keep AFHTTPSessionManager instance with the plugin Persist the AFHTTPSessionManager instance for the life of the plugin to allow reusing the underlying sockets, for example, with "Connection: keep-alive" headers. --- src/ios/CordovaHttpPlugin.m | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/src/ios/CordovaHttpPlugin.m b/src/ios/CordovaHttpPlugin.m index 15fa17f..1c34d92 100644 --- a/src/ios/CordovaHttpPlugin.m +++ b/src/ios/CordovaHttpPlugin.m @@ -20,11 +20,13 @@ @implementation CordovaHttpPlugin { AFSecurityPolicy *securityPolicy; bool redirect; + AFHTTPSessionManager *manager; } - (void)pluginInitialize { securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeNone]; redirect = true; + manager = [AFHTTPSessionManager manager]; } - (void)setRequestSerializer:(NSString*)serializerName forManager:(AFHTTPSessionManager*)manager { @@ -157,7 +159,6 @@ } - (void)post:(CDVInvokedUrlCommand*)command { - AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; manager.securityPolicy = securityPolicy; NSString *url = [command.arguments objectAtIndex:0]; @@ -199,7 +200,6 @@ } - (void)get:(CDVInvokedUrlCommand*)command { - AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; manager.securityPolicy = securityPolicy; NSString *url = [command.arguments objectAtIndex:0]; @@ -241,7 +241,6 @@ } - (void)put:(CDVInvokedUrlCommand*)command { - AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; manager.securityPolicy = securityPolicy; NSString *url = [command.arguments objectAtIndex:0]; @@ -283,7 +282,6 @@ } - (void)patch:(CDVInvokedUrlCommand*)command { - AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; manager.securityPolicy = securityPolicy; NSString *url = [command.arguments objectAtIndex:0]; @@ -325,7 +323,6 @@ } - (void)delete:(CDVInvokedUrlCommand*)command { - AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; manager.securityPolicy = securityPolicy; NSString *url = [command.arguments objectAtIndex:0]; @@ -366,7 +363,6 @@ } - (void)head:(CDVInvokedUrlCommand*)command { - AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; manager.securityPolicy = securityPolicy; NSString *url = [command.arguments objectAtIndex:0]; NSDictionary *parameters = [command.arguments objectAtIndex:1]; @@ -406,7 +402,6 @@ } - (void)uploadFile:(CDVInvokedUrlCommand*)command { - AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; manager.securityPolicy = securityPolicy; NSString *url = [command.arguments objectAtIndex:0]; @@ -463,7 +458,6 @@ - (void)downloadFile:(CDVInvokedUrlCommand*)command { - AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; manager.securityPolicy = securityPolicy; NSString *url = [command.arguments objectAtIndex:0]; From 56272b9a5d6ea17b9064788ae40a341b3a03937d Mon Sep 17 00:00:00 2001 From: Sefa Ilkimen Date: Mon, 11 Mar 2019 13:59:17 +0100 Subject: [PATCH 2/2] Update changelog --- CHANGELOG.md | 1 + package-lock.json | 2 +- src/ios/CordovaHttpPlugin.m | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 27c8391..26d7875 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ ## 2.0.6 - Fixed #187: setSSLCertMode with "default" throws an error on Android +- Fixed #115: HTTP connections are not kept alive on iOS (thanks MorpheusDe97) ## 2.0.5 diff --git a/package-lock.json b/package-lock.json index 74651f6..b168be6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "cordova-plugin-advanced-http", - "version": "2.0.5", + "version": "2.0.6", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/src/ios/CordovaHttpPlugin.m b/src/ios/CordovaHttpPlugin.m index 3df7b06..8fcf45d 100644 --- a/src/ios/CordovaHttpPlugin.m +++ b/src/ios/CordovaHttpPlugin.m @@ -25,8 +25,8 @@ - (void)pluginInitialize { securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeNone]; - redirect = true; manager = [AFHTTPSessionManager manager]; + redirect = true; } - (void)setRequestSerializer:(NSString*)serializerName forManager:(AFHTTPSessionManager*)manager {