改装 2 取消请求工作

far*_*tel 5 android okhttp retrofit2

我已经阅读了一段时间有关改造 2 中取消请求的内容。据我所读的取消请求,onFailure() 会被调用,并且如果未分派,请求将从队列中删除。但是,如果请求已被分派(我知道我会收到 onFailure() 回调),但对服务器的实际 HTTP 请求是否被取消,会发生什么情况?

为了详细说明,假设我正在将图像上传到服务器。请求已分派,现在取消被调用,我知道我会得到 android 的 onFailure 回调,但是图像会上传到服务器还是会从服务器端被放弃?

这可能是网络请求中的一个基本问题,但由于这是我第一次遇到,所以不太清楚取消请求通常是如何工作的。

Nab*_*ari 3

如果连接已经建立,调用cancelRetrofit 的Call对象将关闭连接的套接字。

这意味着如果您在文件上传过程中调用该cancel()方法,那么连接将立即关闭并且文件上传将失败。

但是,如果您在文件上传完成并且服务器正在发送响应消息时取消调用,则文件将被上传。