使用 ion 和意图服务进行 http 调用会在数据网络上出错

Making http call using ion with in intent Service gives error on data network

我正在使用 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."

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

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