【问题标题】:Retrofit 2 cancel request working改造2取消请求工作
【发布时间】:2017-10-11 08:44:39
【问题描述】:

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

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

这可能是网络请求中的基本内容,但由于这是我第一次遇到并不太了解取消请求通常是如何工作的。

【问题讨论】:

    标签: android retrofit2 okhttp3


    【解决方案1】:

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

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

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

    【讨论】:

    • 谢谢。知道如何处理您提到的这种棘手的情况吗?
    • 您可能想要开发一个确认系统,例如双向握手。但这会太复杂。这种情况很少发生。我认为您不需要处理这种情况。
    猜你喜欢
    • 2016-12-08
    • 1970-01-01
    • 1970-01-01
    • 2017-10-02
    • 2018-07-09
    • 2019-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多