Skip to content

Commit 8a9381f

Browse files
committed
refactored to use Singleton instance of ConnectionFactory
1 parent f1c95ef commit 8a9381f

File tree

4 files changed

+29
-45
lines changed

4 files changed

+29
-45
lines changed

plugin.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@
5656
<uses-permission android:name="android.permission.INTERNET"/>
5757
</config-file>
5858
<source-file src="src/android/com/github/kevinsawicki/http/HttpRequest.java" target-dir="src/com/github/kevinsawicki/http"/>
59+
<source-file src="src/android/com/github/kevinsawicki/http/OkConnectionFactory.java" target-dir="src/com/github/kevinsawicki/http"/>
5960
<source-file src="src/android/com/github/kevinsawicki/http/TLSSocketFactory.java" target-dir="src/com/github/kevinsawicki/http"/>
6061
<source-file src="src/android/com/synconset/cordovahttp/CordovaHttp.java" target-dir="src/com/synconset/cordovahttp"/>
6162
<source-file src="src/android/com/synconset/cordovahttp/CordovaHttpDelete.java" target-dir="src/com/synconset/cordovahttp"/>
@@ -67,7 +68,6 @@
6768
<source-file src="src/android/com/synconset/cordovahttp/CordovaHttpPut.java" target-dir="src/com/synconset/cordovahttp"/>
6869
<source-file src="src/android/com/synconset/cordovahttp/CordovaHttpPatch.java" target-dir="src/com/synconset/cordovahttp"/>
6970
<source-file src="src/android/com/synconset/cordovahttp/CordovaHttpUpload.java" target-dir="src/com/synconset/cordovahttp"/>
70-
7171
<framework src="com.squareup.okhttp3:okhttp-urlconnection:3.9.1" />
7272
</platform>
7373
</plugin>

src/android/com/github/kevinsawicki/http/HttpRequest.java

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -428,15 +428,7 @@ public interface ConnectionFactory {
428428
* A {@link ConnectionFactory} which uses the built-in
429429
* {@link URL#openConnection()}
430430
*/
431-
ConnectionFactory DEFAULT = new ConnectionFactory() {
432-
public HttpURLConnection create(URL url) throws IOException {
433-
return (HttpURLConnection) url.openConnection();
434-
}
435-
436-
public HttpURLConnection create(URL url, Proxy proxy) throws IOException {
437-
return (HttpURLConnection) url.openConnection(proxy);
438-
}
439-
};
431+
ConnectionFactory DEFAULT = new OkConnectionFactory();
440432
}
441433

442434
private static ConnectionFactory CONNECTION_FACTORY = ConnectionFactory.DEFAULT;
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package com.github.kevinsawicki.http;
2+
3+
import okhttp3.OkUrlFactory;
4+
import okhttp3.OkHttpClient;
5+
6+
import java.net.URL;
7+
import java.net.HttpURLConnection;
8+
import java.net.URLStreamHandler;
9+
import java.net.Proxy;
10+
11+
12+
public class OkConnectionFactory implements HttpRequest.ConnectionFactory {
13+
14+
protected OkHttpClient okHttpClient = new OkHttpClient();
15+
16+
public HttpURLConnection create(URL url) {
17+
OkUrlFactory okUrlFactory = new OkUrlFactory(okHttpClient);
18+
return (HttpURLConnection) okUrlFactory.open(url);
19+
}
20+
21+
public HttpURLConnection create(URL url, Proxy proxy) {
22+
OkHttpClient okHttpClientWithProxy = okHttpClient.newBuilder().proxy(proxy).build();
23+
OkUrlFactory okUrlFactory = new OkUrlFactory(okHttpClientWithProxy);
24+
return (HttpURLConnection) okUrlFactory.open(url);
25+
}
26+
}

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

Lines changed: 1 addition & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -34,16 +34,6 @@
3434

3535
import com.github.kevinsawicki.http.HttpRequest;
3636
import com.github.kevinsawicki.http.HttpRequest.HttpRequestException;
37-
import com.github.kevinsawicki.http.HttpRequest.ConnectionFactory;
38-
39-
import okhttp3.OkUrlFactory;
40-
import okhttp3.OkHttpClient;
41-
42-
import java.net.URL;
43-
import java.net.HttpURLConnection;
44-
import java.net.URLStreamHandler;
45-
import java.net.Proxy;
46-
4737

4838
abstract class CordovaHttp {
4939
protected static final String TAG = "CordovaHTTP";
@@ -62,12 +52,7 @@ abstract class CordovaHttp {
6252
private CallbackContext callbackContext;
6353

6454
public CordovaHttp(String urlString, Object params, JSONObject headers, int timeout, CallbackContext callbackContext) {
65-
this.urlString = urlString;
66-
this.params = params;
67-
this.serializerName = "default";
68-
this.headers = headers;
69-
this.timeoutInMilliseconds = timeout;
70-
this.callbackContext = callbackContext;
55+
this(urlString, params, "default", headers, timeout, callbackContext);
7156
}
7257

7358
public CordovaHttp(String urlString, Object params, String serializerName, JSONObject headers, int timeout, CallbackContext callbackContext) {
@@ -241,29 +226,10 @@ protected HashMap<String, Object> getMapFromJSONObject(JSONObject object) throws
241226
return map;
242227
}
243228

244-
private ConnectionFactory getConnectionFactory() {
245-
final OkHttpClient okHttpClient = new OkHttpClient();
246-
247-
return new ConnectionFactory() {
248-
public HttpURLConnection create(URL url) {
249-
OkHttpClient okHttpClient = new OkHttpClient();
250-
OkUrlFactory okUrlFactory = new OkUrlFactory(okHttpClient);
251-
return (HttpURLConnection) okUrlFactory.open(url);
252-
}
253-
254-
public HttpURLConnection create(URL url, Proxy proxy) {
255-
OkHttpClient okHttpClient = new OkHttpClient.Builder().proxy(proxy).build();
256-
OkUrlFactory okUrlFactory = new OkUrlFactory(okHttpClient);
257-
return (HttpURLConnection) okUrlFactory.open(url);
258-
}
259-
};
260-
}
261-
262229
protected void prepareRequest(HttpRequest request) throws HttpRequestException, JSONException {
263230
this.setupRedirect(request);
264231
this.setupSecurity(request);
265232

266-
request.setConnectionFactory(getConnectionFactory());
267233
request.readTimeout(this.getRequestTimeout());
268234
request.acceptCharset(ACCEPTED_CHARSETS);
269235
request.headers(this.getHeadersMap());

0 commit comments

Comments
 (0)