android – 如何使用loopJ SyncHttpClient进行同步调用?

我已经被困在这两天了,最后决定在这里发帖.

我看到loopj库用于异步调用,并提供了大量示例和解释.

但由于我不能在Android中的IntentSerive中使用异步调用,我被迫使用SyncHttpClient,但它似乎不起作用,因为当我使用SyncHttpClient时只调用onFailure回调.

在文档中也没有使用SyncHttpClient的示例.

这个问题也在here讨论.

那么有人能给出正确的方法吗?

解决方法:

你这样做与async http客户端一样,你提供了实现ResponseHandlerInterface的处理程序,但现在请求将在同一个线程中执行.您可以通过在同步http客户端调用后将调试器设置为下一个语句来自行检查,并在执行onSuccess / onFailure回调后看到调试器将命中此语句.在异步调试器的情况下,甚至在你的onStart方法之前就会遇到这种情况,因为它将在一个单独的线程中执行.

例:

mSyncClient.post("http://example.com", params, new JsonHttpResponseHandler() {
            @Override
            public void onStart() {
                // you can do something here before request starts                    
            }

            @Override
            public void onSuccess(int statusCode, Header[] headers, JSONObject response) {
                // success logic here
            }


            @Override
            public void onFailure(int statusCode, Header[] headers, Throwable e, JSONObject errorResponse) {
               // handle failure here
            }

        });

 // the statements after this comment line will be executed after onSuccess (or onFailure ) callback.

相关文章

Android 如何解决dialog弹出时无法捕捉Activity的back事件 在...
Android实现自定义带文字和图片的Button 在Android开发中经常...
Android 关于长按back键退出应用程序的实现最近在做一个Andr...
android自带的时间选择器只能精确到分,但是对于某些应用要求...