diff --git a/android/android.iml b/android/android.iml
index 75a704f..dc79907 100644
--- a/android/android.iml
+++ b/android/android.iml
@@ -16,5 +16,6 @@
+
\ No newline at end of file
diff --git a/android/src/mediabrowser/apiinteraction/android/VolleyHttpClient.java b/android/src/mediabrowser/apiinteraction/android/VolleyHttpClient.java
index b505770..9636a3a 100644
--- a/android/src/mediabrowser/apiinteraction/android/VolleyHttpClient.java
+++ b/android/src/mediabrowser/apiinteraction/android/VolleyHttpClient.java
@@ -1,15 +1,25 @@
package mediabrowser.apiinteraction.android;
-import mediabrowser.apiinteraction.android.images.ImageCacheManager;
-import mediabrowser.apiinteraction.http.HttpRequest;
-import mediabrowser.apiinteraction.http.IAsyncHttpClient;
-import mediabrowser.apiinteraction.Response;
-import mediabrowser.model.logging.ILogger;
import android.content.Context;
-import com.android.volley.*;
+import com.android.volley.DefaultRetryPolicy;
+import com.android.volley.Request;
+import com.android.volley.RequestQueue;
import com.android.volley.toolbox.ImageLoader;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;
+import com.squareup.okhttp.OkHttpClient;
+import de.duenndns.ssl.MemorizingTrustManager;
+import mediabrowser.apiinteraction.Response;
+import mediabrowser.apiinteraction.android.images.ImageCacheManager;
+import mediabrowser.apiinteraction.http.HttpRequest;
+import mediabrowser.apiinteraction.http.IAsyncHttpClient;
+import mediabrowser.model.logging.ILogger;
+
+import javax.net.ssl.HttpsURLConnection;
+import javax.net.ssl.SSLContext;
+import javax.net.ssl.X509TrustManager;
+import java.security.KeyManagementException;
+import java.security.NoSuchAlgorithmException;
public class VolleyHttpClient implements IAsyncHttpClient {
@@ -41,10 +51,30 @@ public RequestQueue getRequestQueue() {
// lazy initialize the request queue, the queue instance will be
// created when it is accessed for the first time
if (mRequestQueue == null) {
-
- mRequestQueue = Volley.newRequestQueue(context, new OkHttpStack());
- //mRequestQueue = Volley.newRequestQueue(context, new HttpClientStack(new DefaultHttpClient()));
- //mRequestQueue = Volley.newRequestQueue(context);
+ // register MemorizingTrustManager for HTTPS
+ try {
+ SSLContext sc;
+ sc = SSLContext.getInstance("TLS");
+ MemorizingTrustManager mtm = new MemorizingTrustManager(context);
+ sc.init(null, new X509TrustManager[]{mtm}, new java.security.SecureRandom());
+
+ HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
+ HttpsURLConnection.setDefaultHostnameVerifier(
+ mtm.wrapHostnameVerifier(HttpsURLConnection.getDefaultHostnameVerifier()));
+
+ OkHttpClient okClient = new OkHttpClient();
+ okClient.setSslSocketFactory(sc.getSocketFactory());
+ OkHttpStack okStack = new OkHttpStack(okClient);
+
+ mRequestQueue = Volley.newRequestQueue(context, okStack);
+ //mRequestQueue = Volley.newRequestQueue(context, new HttpClientStack(new DefaultHttpClient()));
+ //mRequestQueue = Volley.newRequestQueue(context);
+ } catch (NoSuchAlgorithmException e) {
+ e.printStackTrace();
+ mRequestQueue = Volley.newRequestQueue(context, new OkHttpStack());
+ } catch (KeyManagementException e) {
+ e.printStackTrace();
+ }
}
return mRequestQueue;
@@ -86,14 +116,12 @@ public void cancelPendingRequests(Object tag) {
}
}
- public void Send(final HttpRequest request, final Response response)
- {
+ public void Send(final HttpRequest request, final Response response) {
int method = Request.Method.GET;
- if (request.getMethod() == "POST"){
+ if (request.getMethod() == "POST") {
method = Request.Method.POST;
- }
- else if (request.getMethod() == "DELETE"){
+ } else if (request.getMethod() == "DELETE") {
method = Request.Method.DELETE;
}
diff --git a/lib/memorizing-trust-manager-0.9.jar b/lib/memorizing-trust-manager-0.9.jar
new file mode 100644
index 0000000..28c11b8
Binary files /dev/null and b/lib/memorizing-trust-manager-0.9.jar differ