Android Open Source - verfluchter-android Rest Async Task

From Project

Back to project page verfluchter-android.


The source code is released under:

--2010-08-23 23:59:46-- Translacja ???czenie si? z||:80... po??czono. ??danie HTTP wys?ano, oczeki...

If you think the Android project verfluchter-android listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

 * This file is part of verfluchter-android.
 *//from   www  .ja  va  2  s. c  o m
 * verfluchter-android is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 * verfluchter-android is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * GNU General Public License for more details.
 * You should have received a copy of the GNU General Public License
 * along with Foobar.  If not, see <>.

package pl.xsolve.verfluchter.tasks.general;

import android.os.AsyncTask;
import android.util.Log;
import android.util.Pair;
import org.apache.http.cookie.Cookie;

import java.util.Collections;
import java.util.LinkedList;
import java.util.List;

import static*;

 * An common class for all AsyncTasks that need to use our rest client
 * <p/>
 * Some more info about the "extends <_, _, _>":
 * The 3 Type params mean as follows:
 * 1. Params, the type of the parameters sent to the task upon execution.
 * 2. Progress, the type of the progress units published during the background computation.
 * 3. Result, the type of the result of the background computation.
 * @author Konrad Ktoso Malawski
public abstract class RestAsyncTask<Params, Progress, Result> extends AsyncTask<Params, Progress, Result> {

    // logger tag
    private final static String TAG = RestAsyncTask.class.getSimpleName();

    protected RestClient restClient = new RestClient();

    protected AutoSettings autoSettings;

    protected List<String> errors = new LinkedList<String>();

    private Cookie verfluchtesCookie = null;

    protected RestAsyncTask(AutoSettings autoSettings) {
        this.autoSettings = autoSettings;

    private RestResponse callLogin() throws IOException {
        String domain = autoSettings.getSetting(SERVER_DOMAIN_S, String.class);


        return restClient.execute(domain + "/login", RequestMethod.POST);

    protected RestResponse callWebService(String path, RequestMethod method) throws IOException {
        return callWebService(path, method, Collections.<Pair<String, String>>emptyList());

    protected RestResponse callWebService(String path, RequestMethod method, List<Pair<String, String>> params) throws IOException {
//        setupLoginAuth(restClient);

        path = SoulTools.unNullify(path);
        String domain = autoSettings.getSetting(SERVER_DOMAIN_S, String.class) + path;

        // add request parameters
        for (Pair<String, String> param : params) {
            restClient.addParam(param.first, param.second);

        return restClient.execute(domain, method);

    protected void acquireLoginCookie() {
        RestResponse response = null;
        try {
            response = callLogin();

            verfluchtesCookie = response.getCookie("verfluchter");
            Log.d(TAG, "Got login cookie: verfluchter=" + verfluchtesCookie.getValue());
//            Log.v(TAG, "Got response: " + responseMessage);
        } catch (IOException e) {
            if (response != null) {
                Log.e(TAG, "Failed while getting response, error code: " + response.getResponseCode() + ", message: " + response.getErrorMessage());
        } catch (NullPointerException e) {
            String message = "Failed while getting the servers response, response is null.";
            Log.e(TAG, message);

    private void setupBasicAuth(RestClient restClient) {
        Log.v(TAG, "Setting up basic auth: " + autoSettings.getSetting(BASIC_AUTH_USER_S, String.class) + ":" + autoSettings.getSetting(BASIC_AUTH_PASS_S, String.class));
        restClient.setupBasicAuth(autoSettings.getSetting(BASIC_AUTH_USER_S, String.class), autoSettings.getSetting(BASIC_AUTH_PASS_S, String.class));

    private void setupLoginAuth(RestClient restClient) {
        restClient.addParam("username", autoSettings.getSetting(MY_AUTH_USER_S, String.class));
        restClient.addParam("password", autoSettings.getSetting(MY_AUTH_PASS_S, String.class));
        restClient.addParam("remember", String.valueOf(1));

    private void setupCookieAuth(RestClient restClient) {
        if (verfluchtesCookie != null) {

     * Enque an error message to be displayed when the Task gets hold of the UI thread
     * @param errorMessage the error message to be displayed in the Toast
     * @return the number of total errors to be displayed
    protected int enqueueErrorMessage(String errorMessage) {

        return errors.size();

     * Checks if the task encountered any errors (that were added using the @see enqueueErrorMessage method)
     * @return
    protected boolean hadErrors() {

        return errors.size() > 0;


Java Source Code List