diff --git a/plugin.xml b/plugin.xml
index a675db0..0ff984d 100644
--- a/plugin.xml
+++ b/plugin.xml
@@ -66,6 +66,7 @@
+
diff --git a/src/android/com/silkimen/cordovahttp/CordovaHttpBase.java b/src/android/com/silkimen/cordovahttp/CordovaHttpBase.java
index adebad7..4ecbca5 100644
--- a/src/android/com/silkimen/cordovahttp/CordovaHttpBase.java
+++ b/src/android/com/silkimen/cordovahttp/CordovaHttpBase.java
@@ -15,6 +15,7 @@ import com.silkimen.http.HttpBodyDecoder;
import com.silkimen.http.HttpRequest;
import com.silkimen.http.HttpRequest.HttpRequestException;
import com.silkimen.http.JsonUtils;
+import com.silkimen.http.OkConnectionFactory;
import org.apache.cordova.CallbackContext;
@@ -125,6 +126,7 @@ abstract class CordovaHttpBase implements Runnable {
request.readTimeout(this.timeout);
request.acceptCharset("UTF-8");
request.uncompress(true);
+ request.setConnectionFactory(new OkConnectionFactory());
if (this.customHostnameVerifier != null) {
request.setHostnameVerifier(this.customHostnameVerifier);
diff --git a/src/android/com/silkimen/cordovahttp/CordovaHttpPlugin.java b/src/android/com/silkimen/cordovahttp/CordovaHttpPlugin.java
index 2dccf81..3567693 100644
--- a/src/android/com/silkimen/cordovahttp/CordovaHttpPlugin.java
+++ b/src/android/com/silkimen/cordovahttp/CordovaHttpPlugin.java
@@ -233,6 +233,8 @@ public class CordovaHttpPlugin extends CordovaPlugin {
private SSLSocketFactory createSocketFactory(TrustManager[] trustManagers) throws IOException {
try {
SSLContext context = SSLContext.getInstance("TLS");
+
+ /* @TODO implement custom KeyManager */
context.init(null, trustManagers, new SecureRandom());
if (android.os.Build.VERSION.SDK_INT < 20) {
diff --git a/src/android/com/silkimen/http/OkConnectionFactory.java b/src/android/com/silkimen/http/OkConnectionFactory.java
index 90764b5..c1a3ef1 100644
--- a/src/android/com/silkimen/http/OkConnectionFactory.java
+++ b/src/android/com/silkimen/http/OkConnectionFactory.java
@@ -1,34 +1,26 @@
package com.silkimen.http;
-import okhttp3.OkUrlFactory;
import okhttp3.OkHttpClient;
+import okhttp3.OkUrlFactory;
+
+import java.net.URL;
+import java.net.HttpURLConnection;
+import java.net.URLStreamHandler;
+import java.net.Proxy;
-/**
- * A {@link HttpRequest.ConnectionFactory connection factory} which uses OkHttp.
- *
- * Call {@link HttpRequest#setConnectionFactory(HttpRequest.ConnectionFactory)}
- * with an instance of this class to enable.
- */
public class OkConnectionFactory implements HttpRequest.ConnectionFactory {
- private final OkHttpClient client;
+ private final OkHttpClient client = new OkHttpClient();
- public OkConnectionFactory() {
- this(new OkHttpClient());
+ public HttpURLConnection create(URL url) {
+ OkUrlFactory urlFactory = new OkUrlFactory(this.client);
+
+ return (HttpURLConnection) urlFactory.open(url);
}
- public OkConnectionFactory(OkHttpClient client) {
- if (client == null) {
- throw new NullPointerException("Client must not be null.");
- }
- this.client = client;
- }
+ public HttpURLConnection create(URL url, Proxy proxy) {
+ OkHttpClient clientWithProxy = new OkHttpClient.Builder().proxy(proxy).build();
+ OkUrlFactory urlFactory = new OkUrlFactory(clientWithProxy);
- public HttpURLConnection create(URL url) throws IOException {
- return client.open(url);
- }
-
- public HttpURLConnection create(URL url, Proxy proxy) throws IOException {
- throw new UnsupportedOperationException(
- "Per-connection proxy is not supported. Use OkHttpClient's setProxy instead.");
+ return (HttpURLConnection) urlFactory.open(url);
}
}
diff --git a/src/android/com/silkimen/http/OkConnectionFactory_chax.java b/src/android/com/silkimen/http/OkConnectionFactory_chax.java
deleted file mode 100644
index 69f1b72..0000000
--- a/src/android/com/silkimen/http/OkConnectionFactory_chax.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package com.github.kevinsawicki.http;
-
-import okhttp3.OkUrlFactory;
-import okhttp3.OkHttpClient;
-
-import java.net.URL;
-import java.net.HttpURLConnection;
-import java.net.URLStreamHandler;
-import java.net.Proxy;
-
-public class OkConnectionFactory implements HttpRequest.ConnectionFactory {
-
- protected OkHttpClient okHttpClient = new OkHttpClient();
-
- public HttpURLConnection create(URL url) {
- OkUrlFactory okUrlFactory = new OkUrlFactory(okHttpClient);
- return (HttpURLConnection) okUrlFactory.open(url);
- }
-
- public HttpURLConnection create(URL url, Proxy proxy) {
- OkHttpClient okHttpClientWithProxy = okHttpClient.newBuilder().proxy(proxy).build();
- OkUrlFactory okUrlFactory = new OkUrlFactory(okHttpClientWithProxy);
- return (HttpURLConnection) okUrlFactory.open(url);
- }
-}