0

我正在使用 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:non 2xx status line:HTTP/1.1 500 internal server error”。

4

1 回答 1

3

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

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

于 2015-11-08T21:04:33.490 回答