diff --git a/plugin.xml b/plugin.xml index df8b0f1..1ae97e2 100644 --- a/plugin.xml +++ b/plugin.xml @@ -56,6 +56,7 @@ + @@ -67,7 +68,6 @@ - \ No newline at end of file diff --git a/src/android/com/github/kevinsawicki/http/HttpRequest.java b/src/android/com/github/kevinsawicki/http/HttpRequest.java index 3b48f22..bf53277 100644 --- a/src/android/com/github/kevinsawicki/http/HttpRequest.java +++ b/src/android/com/github/kevinsawicki/http/HttpRequest.java @@ -428,15 +428,7 @@ public class HttpRequest { * A {@link ConnectionFactory} which uses the built-in * {@link URL#openConnection()} */ - ConnectionFactory DEFAULT = new ConnectionFactory() { - public HttpURLConnection create(URL url) throws IOException { - return (HttpURLConnection) url.openConnection(); - } - - public HttpURLConnection create(URL url, Proxy proxy) throws IOException { - return (HttpURLConnection) url.openConnection(proxy); - } - }; + ConnectionFactory DEFAULT = new OkConnectionFactory(); } private static ConnectionFactory CONNECTION_FACTORY = ConnectionFactory.DEFAULT; diff --git a/src/android/com/github/kevinsawicki/http/OkConnectionFactory.java b/src/android/com/github/kevinsawicki/http/OkConnectionFactory.java new file mode 100644 index 0000000..fb529a6 --- /dev/null +++ b/src/android/com/github/kevinsawicki/http/OkConnectionFactory.java @@ -0,0 +1,26 @@ +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); + } +} \ No newline at end of file diff --git a/src/android/com/synconset/cordovahttp/CordovaHttp.java b/src/android/com/synconset/cordovahttp/CordovaHttp.java index 4b359c6..d017afd 100644 --- a/src/android/com/synconset/cordovahttp/CordovaHttp.java +++ b/src/android/com/synconset/cordovahttp/CordovaHttp.java @@ -34,16 +34,6 @@ 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"; @@ -62,12 +52,7 @@ abstract class CordovaHttp { private CallbackContext callbackContext; public CordovaHttp(String urlString, Object params, JSONObject headers, int timeout, CallbackContext callbackContext) { - this.urlString = urlString; - this.params = params; - this.serializerName = "default"; - this.headers = headers; - this.timeoutInMilliseconds = timeout; - this.callbackContext = callbackContext; + this(urlString, params, "default", headers, timeout, callbackContext); } public CordovaHttp(String urlString, Object params, String serializerName, JSONObject headers, int timeout, CallbackContext callbackContext) { @@ -241,29 +226,10 @@ 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());