Call.cancel() 行为说明

Call.cancel() behavior clarification

目前在okhttp 3.10.0,如果我们执行下面的代码:

for (Call call : getOkHttpClient().dispatcher().runningCalls()) {
    if (call.request().tag().equals(tag)) {
        call.cancel();
    }
}

真正的连接(套接字)将被关闭,有没有办法在不关闭底层连接(套接字)的情况下直接挂断电话?以便将来对同一服务器的请求可以重用底层连接(套接字)。

此取消的目的仅仅是为了节省一些带宽,同时仍然能够重新使用连接并避免重新建立连接。

HTTP/2 个连接未关闭套接字。 HTTP/1.1 缺少在不丢失连接的情况下取消呼叫的机制。