diff --git a/plugin.xml b/plugin.xml
index 3e46b32..df8b0f1 100644
--- a/plugin.xml
+++ b/plugin.xml
@@ -67,5 +67,7 @@
+
+
\ No newline at end of file
diff --git a/src/android/com/github/kevinsawicki/http/TLSSocketFactory.java b/src/android/com/github/kevinsawicki/http/TLSSocketFactory.java
index e39df61..37cedb0 100644
--- a/src/android/com/github/kevinsawicki/http/TLSSocketFactory.java
+++ b/src/android/com/github/kevinsawicki/http/TLSSocketFactory.java
@@ -11,45 +11,45 @@ import javax.net.ssl.SSLSocketFactory;
public class TLSSocketFactory extends SSLSocketFactory {
- private SSLSocketFactory internalSSLSocketFactory;
+ private SSLSocketFactory delegate;
public TLSSocketFactory(SSLContext context) {
- internalSSLSocketFactory = context.getSocketFactory();
+ delegate = context.getSocketFactory();
}
@Override
public String[] getDefaultCipherSuites() {
- return internalSSLSocketFactory.getDefaultCipherSuites();
+ return delegate.getDefaultCipherSuites();
}
@Override
public String[] getSupportedCipherSuites() {
- return internalSSLSocketFactory.getSupportedCipherSuites();
+ return delegate.getSupportedCipherSuites();
}
@Override
public Socket createSocket(Socket s, String host, int port, boolean autoClose) throws IOException {
- return enableTLSOnSocket(internalSSLSocketFactory.createSocket(s, host, port, autoClose));
+ return enableTLSOnSocket(delegate.createSocket(s, host, port, autoClose));
}
@Override
public Socket createSocket(String host, int port) throws IOException, UnknownHostException {
- return enableTLSOnSocket(internalSSLSocketFactory.createSocket(host, port));
+ return enableTLSOnSocket(delegate.createSocket(host, port));
}
@Override
public Socket createSocket(String host, int port, InetAddress localHost, int localPort) throws IOException, UnknownHostException {
- return enableTLSOnSocket(internalSSLSocketFactory.createSocket(host, port, localHost, localPort));
+ return enableTLSOnSocket(delegate.createSocket(host, port, localHost, localPort));
}
@Override
public Socket createSocket(InetAddress host, int port) throws IOException {
- return enableTLSOnSocket(internalSSLSocketFactory.createSocket(host, port));
+ return enableTLSOnSocket(delegate.createSocket(host, port));
}
@Override
public Socket createSocket(InetAddress address, int port, InetAddress localAddress, int localPort) throws IOException {
- return enableTLSOnSocket(internalSSLSocketFactory.createSocket(address, port, localAddress, localPort));
+ return enableTLSOnSocket(delegate.createSocket(address, port, localAddress, localPort));
}
private Socket enableTLSOnSocket(Socket socket) {
diff --git a/src/android/com/synconset/cordovahttp/CordovaHttp.java b/src/android/com/synconset/cordovahttp/CordovaHttp.java
index 3d24021..4b359c6 100644
--- a/src/android/com/synconset/cordovahttp/CordovaHttp.java
+++ b/src/android/com/synconset/cordovahttp/CordovaHttp.java
@@ -34,6 +34,16 @@ import android.text.TextUtils;
import com.github.kevinsawicki.http.HttpRequest;
import com.github.kevinsawicki.http.HttpRequest.HttpRequestException;
+import com.github.kevinsawicki.http.HttpRequest.ConnectionFactory;
+
+import okhttp3.OkUrlFactory;
+import okhttp3.OkHttpClient;
+
+import java.net.URL;
+import java.net.HttpURLConnection;
+import java.net.URLStreamHandler;
+import java.net.Proxy;
+
abstract class CordovaHttp {
protected static final String TAG = "CordovaHTTP";
@@ -231,9 +241,29 @@ abstract class CordovaHttp {
return map;
}
+ private ConnectionFactory getConnectionFactory() {
+ final OkHttpClient okHttpClient = new OkHttpClient();
+
+ return new ConnectionFactory() {
+ public HttpURLConnection create(URL url) {
+ OkHttpClient okHttpClient = new OkHttpClient();
+ OkUrlFactory okUrlFactory = new OkUrlFactory(okHttpClient);
+ return (HttpURLConnection) okUrlFactory.open(url);
+ }
+
+ public HttpURLConnection create(URL url, Proxy proxy) {
+ OkHttpClient okHttpClient = new OkHttpClient.Builder().proxy(proxy).build();
+ OkUrlFactory okUrlFactory = new OkUrlFactory(okHttpClient);
+ return (HttpURLConnection) okUrlFactory.open(url);
+ }
+ };
+ }
+
protected void prepareRequest(HttpRequest request) throws HttpRequestException, JSONException {
this.setupRedirect(request);
this.setupSecurity(request);
+
+ request.setConnectionFactory(getConnectionFactory());
request.readTimeout(this.getRequestTimeout());
request.acceptCharset(ACCEPTED_CHARSETS);
request.headers(this.getHeadersMap());