Call.cancel()行为澄清

问题描述 投票:2回答:1

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

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

真正的连接(套接字)将被关闭,有没有办法在不关闭底层连接(套接字)的情况下放弃调用?这样底层连接(套接字)可以被以后对同一服务器的请求重用。

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

okhttp okhttp3
1个回答
1
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.