如何通过okhttp验证Http / 2?

时间:2018-11-25 14:46:45

标签: android okhttp okhttp3 http2

如果域支持,则

Okhttp默认为h2协议。 目的是要以某种方式检测到域是否位于h2上并且okhttp默认为h2,开发人员如何才能获得所有呼叫都被多路复用并通过单个TCP连接进行确认的确认? 我尝试按照Jesse Wilson的建议使用CustomEventListener 不过,我仍然无法获得100%的确认。尝试获取连接信息

```@Override
public void connectionAcquired(Call call, Connection connection) {
    logWithTime("connectionAcquired: " + connection);
}
```

连接对象提供{cipherSuit和协议组成的Route地址,端口,代理,socketAddress。虽然协议是连接对象所示的h2,但我想知道连接实际上是多路复用的,并且通过单个连接进行。没有有关连接ID或任何可以确认相同信息的信息。请建议。  样本日志: [7毫秒]已获得连接:连接{{http://api.hotstar.com:443,代理=直接主机地址= http://api.hotstar.com/106.51.146.149:443…cipherSuite = TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384协议= h2}

1 个答案:

答案 0 :(得分:1)

尝试打印连接标识哈希码。如果连接不同,它们将具有不同的值。

public void connectionAcquired(Call call, Connection connection) {
  logWithTime("connectionAcquired: " + System.identityHashCode(connection));
}