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

标签 android http service loopj

纠结了两天,终于决定发帖了。

我看到 loopj 库被用于异步调用,并且有很多示例和解释。

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

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

这个问题也有讨论here .

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

最佳答案

您以与异步 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 - 如何使用loopJ SyncHttpClient进行同步调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25549805/

相关文章:

android - 循环通过id访问资源

android - 中断android中的来电

php - 如何使用 HttpURLConnection 在 php 中发送 json 以读取 'php://input'?

java - 如何将属性添加到 spring Controller 的 http 请求?

java - sdk 21以上服务每5分钟运行一次的方法

android - 在 Android 上的另一个应用程序中使用导出的服务

javascript - 帖子内的图片逐渐调整大小,在 Android 浏览器中宽度和高度为零

android - 返回 Activity 而不创建新实例

java - Apache Camel http 到 http 路由以及响应转换

service - 在 Play 应用程序中启动时调用服务