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