java - 使用带有 Intent 服务的 ion 进行 http 调用会在数据网络上出现错误

标签 java android intentservice android-ion

我正在使用 IntentService 通过 Ion 进行 http 调用。在 Wifi 上它运行良好,但当我切换到数据网络时,事情开始崩溃。

Ion.with(Application.getApplicationContext())
            .load(url)
            .as(new TypeToken<Object>() {})
            .withResponse()
            .setCallback(new FutureCallback<Response<Object>>() {
                @Override
                public void onCompleted(Exception e, Response<Object> response) {
                    if(e == null) {
                        Bundle bundle = new Bundle();
                        bundle.putSerializable("result", (Serializable) response.getResult());
                        rec.send(response.getHeaders().code(), bundle);
                    }
                }
            });

上面是我在 IntentService 中使用的代码 我正进入(状态 “java.io.IOException:非 2xx 状态行:HTTP/1.1 500 内部服务器错误。”

最佳答案

由于您使用的是 Intent 服务,因此一旦 onHandleIntent 方法完成,该服务就会终止。 Ion 的请求会检测到服务上下文终止并取消请求。

但是,您似乎正在使用主应用程序上下文,而不是服务上下文,在这种情况下它应该可以工作。无论如何,您都会得到正确的响应(500 仍然是成功的请求和响应)。 500 表示问题出在服务器端。

关于java - 使用带有 Intent 服务的 ion 进行 http 调用会在数据网络上出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33569473/

相关文章:

java - 在java中比较对象的多个字段的最佳方法?

android - 从后台获取特定的 Activity

java - 从 IntentService 传递数据

android - 使用 kivy 在 Android 和 IOS 中播放音频(mp3)

file - 与其他应用程序共享文件/文本并成功回调

android - 如何从 IntentService 收集信息并更新 Android UI

java - 实现索贝尔算法

java - 在实体中声明集合类型列时,差异实例或无

java - 处理数据库或应用程序上的空值?

java - 使用 Java for Android 获取响应 rest web 服务