loopj AsyncHttpClient超过3个帖子不能正常工作

时间:2014-04-03 08:08:24

标签: android loopj

我开始了4个帖子后跟着对方。但我只收到4个帖子中的3个回复。 有人可以向我解释原因吗?我也尝试了它,它有同样的问题。我是否在彼此之后快速发帖?

Resclient class:

public class RestClient {
    private static AsyncHttpClient client = new AsyncHttpClient();

    public static void post(String url, RequestParams params, AsyncHttpResponseHandler responseHandler) {
        client.post(url, params, responseHandler);
    }
}

Webservice解析器:

public class WSBeer extends WSBase {
    public WSBeer(OnWSRequestCompleted listener, Context context) {
        super(listener, context);
    }
    public void getAll(String date) throws JSONException {
        Tools.LOG_DEBUG("GetAllBeer");
        RequestParams params    = new RequestParams();
        params.add("date", date);

        RestClient.post(url, params, new JsonHttpResponseHandler() {

            @Override
            public void onSuccess(JSONObject response) {
                Tools.LOG_DEBUG("WSBeer onSucces: " + response);
                listener.onRestTaskCompleted(Constants.FUNCTION_DB_BEER, response);
            }

            @Override
            public void onFailure(Throwable e, JSONArray errorResponse) {
               Tools.LOG_DEBUG("WSBeer getAll: " + errorResponse);
                handleError(e, errorResponse, null);
            }

            @Override
            public void onFailure(Throwable e, JSONObject errorResponse) {
                Tools.LOG_DEBUG("WSBeer getAll: " + errorResponse);
                handleError(e, null, errorResponse);
            }
        });
    }
}

SyncHandler类:

public class SyncHandler implements OnWSRequestCompleted {

    private OnSyncListener listener;
    private Context context;

    private WSBeer wsBeer;

    public SyncHandler(OnSyncListener listener, Context context) {
        this.listener = listener;
        this.context = context;
    }

    @Override
    public void onRestTaskCompleted(int function, JSONObject response) {

        switch (function) {
            case Constants.FUNCTION_DB_BEER:
                List<Beer> beerList = null;
                try {
                    beerList = ResponseBeer.getAll(response);
                } catch (IOException e) {
                    Tools.LOG_ERROR(e);
                }
                Tools.LOG_DEBUG("Beers");
                if (beerList != null) {
                    new SaveBeerHelper(listener).execute(beerList.toArray(new Beer[beerList.size()]));
                }
                break;
        }
    }

    public void syncBeer() {
        wsBeer = new WSBeer(this, context);

        try {
            Tools.LOG_DEBUG("Start loading beer...");
            String date = getSyncDate(Constants.FUNCTION_DB_BEER);
            wsBeer.getAll(date);
        } catch (JSONException e) {
            e.printStackTrace();
        }
    }

    private String getSyncDate(int databaseId) {
        SyncData syncData = Shared.dbRepo.syncRepository.getById(databaseId);

        if (syncData != null) {
            Tools.LOG_DEBUG("SyncData: " + syncData.getSyncDate().toString());
            return syncData.getSyncDate().toString();
        } else {
            new SyncData(databaseId).Save(Shared.dbRepo);
        }
        Tools.LOG_DEBUG("SyncData: ");
        return "";
    }
}

WEBSERVICE ACTION:

public function bierenAction()
{
    $this->view->status = 204;  //Nog geen content

    if ($this->getRequest()->isPost()){
        $date = $this->postParam('date');
        if ($date != "") {
            $bieren = self::$proxyBier->getBierenByUpdated($date);
        } else {
            $bieren = self::$proxyBier->getBieren();
        }
    } else {
        $bieren = self::$proxyBier->getBieren();
    }

    $this->view->data = $bieren;

    $this->view->status = 200; //Alles oke
    $this->view->ajax();
}

2 个答案:

答案 0 :(得分:1)

你也可以使用这个https://github.com/leonardoxh/AsyncOkHttpClient这个库只使用OkHttpClient而不是Apache librarys,这个库是Loopj AsyncHttpClient 2.0的基本代码(其中的库将用Square OkHttp重新实现)

答案 1 :(得分:0)

我使用了较新版本的async-http库

compile 'com.loopj.android:android-async-http:1.4.5-SNAPSHOT'

一切都像魅力一样:)