我已经阅读了一段时间关于改造 2 中取消请求的内容。据我阅读的有关取消请求的内容,调用 onFailure() 并且如果未分派(dispatch),请求将从队列中删除。但是,如果请求已经被发送(我知道我会得到 onFailure() 回调)但对服务器的实际 HTTP 请求是否被取消,会发生什么情况?
为了详细说明,假设我正在将图像上传到服务器。请求已发送,现在取消已调用,我知道我会收到 android 的 onFailure 回调,但图像会上传到服务器还是会从服务器端放弃?
这可能是网络请求中的基本内容,但由于这是我第一次遇到,所以不太了解取消请求的一般工作原理。
最佳答案
如果连接已建立,则在 retrofit 的 Call
对象上调用 cancel
将关闭连接的套接字。
这意味着如果您在文件上传过程中调用了cancel()
方法,那么连接将立即关闭,文件上传将失败。
但是如果您在文件上传完成并且服务器正在发送响应消息时取消调用,则文件会上传。
关于android - 改造 2 取消请求工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46683733/