android - 改造 2 取消请求工作

标签 android retrofit2 okhttp

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

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

这可能是网络请求中的基本内容,但由于这是我第一次遇到,所以不太了解取消请求的一般工作原理。

最佳答案

如果连接已建立,则在 retrofit 的 Call 对象上调用 cancel 将关闭连接的套接字。

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

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

关于android - 改造 2 取消请求工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46683733/

相关文章:

android - 如何使用 Android 应用程序和 Node 服务器实现用户 session ?

Java 解析 Json 与具有不同对象类型的数组(Gson 或 Jackson 等)

android - Android 模拟器中缺少小部件预览应用程序

android - Retrofit2:如何从响应中保存 cookie

android - 如果它们有嵌套数组,如何创建数据字段以在 retrofit2 后使用

android - okhttp 无法正确验证引脚

android - 在 ionic real android 设备中从本地服务器测试 REST API

java - 字符串传递到不同 fragment 时不会更新?

android - Retrofit2:上传带有一些表单数据的图像-Android

android - OKHTTP 3 MediaType as "application/x-www-form-urlencoded"崩溃问题