AsynchronousSender.java :  » Browser » mde-android » de » kamelstall » modsde » comm » Android Open Source

Android Open Source » Browser » mde android 
mde android » de » kamelstall » modsde » comm » AsynchronousSender.java
package de.kamelstall.modsde.comm;

import java.io.IOException;
import java.util.List;

import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.CookieStore;
import org.apache.http.client.methods.HttpUriRequest;
import org.apache.http.cookie.Cookie;
import org.apache.http.impl.client.DefaultHttpClient;

import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Handler;
import android.util.Log;

public class AsynchronousSender extends Thread {

  private static final DefaultHttpClient httpClient = new DefaultHttpClient();
  private static boolean cookiesLoaded = false; 

  private HttpUriRequest request;
  private Handler handler;
  private CallbackWrapper wrapper;

  protected AsynchronousSender(HttpUriRequest request, Handler handler, CallbackWrapper wrapper) {
    this.request = request;
    this.handler = handler;
    this.wrapper = wrapper;
  }

  public void run() {
    try {
      final HttpResponse response;
      synchronized (httpClient) {
        response = getClient().execute(request);
        // store cookies
        String cookies = CookieFactory.stringFromCookies(getClient().getCookieStore().getCookies());
        SharedPreferences preferences = MdeStatus.getInstance().getSharedPreferences();
        Editor editor = preferences.edit();
        editor.putString(MdeStatus.PREF_COOKIES, cookies);
        editor.commit();
        Log.d("MDE", "Stored cookies: " + cookies);
      }
      // process response
      if (wrapper != null && wrapper.hasCallback()) {
        wrapper.setResponse(response);
        handler.post(wrapper);
      }
    } catch (ClientProtocolException e) {
      e.printStackTrace();
    } catch (IOException e) {
      e.printStackTrace();
    }
  }

  private DefaultHttpClient getClient() {
    if (!cookiesLoaded) {
      // load cookies
      CookieStore cookieStore = httpClient.getCookieStore();
      SharedPreferences preferences = MdeStatus.getInstance().getSharedPreferences();
      String cookieStr = preferences.getString(MdeStatus.PREF_COOKIES, null);
      if (cookieStr != null) {
        List<Cookie> cookies = CookieFactory.loadCookiesFromString(cookieStr);
        for (Cookie c : cookies) {
          cookieStore.addCookie(c);
        }
      }
    }
    return httpClient;
  }

}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.