]> iEval git - fonbot.git/blobdiff - src/ro/ieval/fonbot/HttpCallExecutableRunnable.java
Remove trust managers from HttpCallExecutableRunnable
[fonbot.git] / src / ro / ieval / fonbot / HttpCallExecutableRunnable.java
index 34c5d8d8260265be43ee1e6edee0460d1accf95b..b54a7ba53affb7325f7c8d9c312cf703e3d1db51 100644 (file)
@@ -5,10 +5,10 @@ import static ro.ieval.fonbot.Utils.toNonNull;
 
 import java.io.InputStream;
 import java.io.OutputStream;
-import java.net.HttpURLConnection;
 import java.net.URL;
 import java.util.Collection;
 
+import javax.net.ssl.HttpsURLConnection;
 import org.eclipse.jdt.annotation.Nullable;
 
 import android.content.Context;
@@ -38,11 +38,12 @@ import com.google.android.gcm.GCMRegistrar;
  */
 
 /**
- * ExecutableRunnable that makes a HTTP call to the server and hands the response to a callback
+ * ExecutableRunnable that makes a HTTPS call to the server and hands the response to a callback
  *
  * @author Marius Gavrilescu <marius@ieval.ro>
  */
 public final class HttpCallExecutableRunnable extends ExecutableRunnable{
+
        /**
         * Callback which is run after a HTTP call.
         *
@@ -85,6 +86,8 @@ public final class HttpCallExecutableRunnable extends ExecutableRunnable{
         * Callback to run after the request returns
         */
        private final ResultCallback callback;
+       /** If true, the task should be retried if it fails */
+       private final boolean mustRetryTask;
 
        /**
         * Constructs a SendHttpMessageAsyncTask which sends a binary message.
@@ -93,13 +96,15 @@ public final class HttpCallExecutableRunnable extends ExecutableRunnable{
         * @param headers the extra headers
         * @param context the context instance
         * @param resultCallback {@link ResultCallback} instance
+        * @param mustRetryTask true if this task should be retried if it fails
         * @param data the message to send
         */
-       public HttpCallExecutableRunnable(final String path, final @Nullable Collection<Header> headers, final Context context, final @Nullable ResultCallback resultCallback, final byte[] data){//NOPMD array is supposed to be immutable.
+       public HttpCallExecutableRunnable(final String path, final @Nullable Collection<Header> headers, final Context context, final @Nullable ResultCallback resultCallback, final boolean mustRetryTask, final byte[] data){//NOPMD array is supposed to be immutable.
                this.path=path;
                this.headers=headers;
                this.context=context;
                this.callback=resultCallback;
+               this.mustRetryTask=mustRetryTask;
                this.data=data;
        }
 
@@ -110,13 +115,15 @@ public final class HttpCallExecutableRunnable extends ExecutableRunnable{
         * @param headers the extra headers
         * @param context the context instance
         * @param resultCallback {@link ResultCallback} instance
+        * @param mustRetryTask true if this task should be retried if it fails
         * @param message message to send
         */
-       public HttpCallExecutableRunnable(final String path, final @Nullable Collection<Header> headers, final Context context, final @Nullable ResultCallback resultCallback, final String... message){
+       public HttpCallExecutableRunnable(final String path, final @Nullable Collection<Header> headers, final Context context, final @Nullable ResultCallback resultCallback, final boolean mustRetryTask, final String... message){
                this.path=path;
                this.headers=headers;
                this.context=context;
                this.callback=resultCallback;
+               this.mustRetryTask=mustRetryTask;
                if(message.length == 0)
                        this.data=null;//NOPMD final field
                else
@@ -127,7 +134,7 @@ public final class HttpCallExecutableRunnable extends ExecutableRunnable{
        public void run() {
                try {
                        final URL url=Utils.getServerURL(toNonNull(context),toNonNull(path));
-                       final HttpURLConnection conn=(HttpURLConnection) url.openConnection();
+                       final HttpsURLConnection conn=(HttpsURLConnection) url.openConnection();
                        if(data!=null){
                                conn.setDoOutput(true);
                                conn.setFixedLengthStreamingMode(data.length);
@@ -157,13 +164,15 @@ public final class HttpCallExecutableRunnable extends ExecutableRunnable{
                        if(message==null && callback != null)
                                callback.onError(toNonNull(context.getString(no_response_returned_from_server)));
                        else if(message != null && callback != null)
-                               callback.onResult(conn.getResponseCode(), Utils.parseHttpMessage(message),
+                               callback.onResult(conn.getResponseCode(), message,
                                                toNonNull(conn.getInputStream()));
                        conn.disconnect();
                } catch (Exception e) {
                        e.printStackTrace();
                        if(callback != null)
                                callback.onError(toNonNull(context.getString(connection_error)));
+                       if(mustRetryTask)
+                               retry();
                }
        }
 }
This page took 0.02596 seconds and 4 git commands to generate.