如何通过okhttp验证Http/2?
How to verify Http/2 via okhttp?
如果域支持,Okhttp 默认使用 h2 协议。
目的是以某种方式检测如果域在 h2 上并且 okhttp 默认为 h2,开发人员如何确认所有调用都被多路复用并在单个 TCP 连接上进行?
我尝试按照 Jesse Wilson 的建议使用 CustomEventListener
不过,我无法获得 100% 的确认。试图获取连接信息
```@Override
public void connectionAcquired(Call call, Connection connection) {
logWithTime("connectionAcquired: " + connection);
}
```
连接对象给出 Route
地址、端口、代理、socketAddress 以及 cipherSuit 和协议。虽然协议是 h2,如连接对象所示,但我想知道连接实际上是多路复用的,并且通过单个连接。没有关于连接 ID 或任何确认相同信息的信息。请建议。
示例日志:
[7 毫秒] 已获取连接:连接{http://api.hotstar.com:443 , proxy=DIRECT hostAddress=http://api.hotstar.com/106.51.146.149:443 ... cipherSuite=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 协议=h2}
尝试打印连接身份哈希码。如果连接不同,它们将具有不同的值。
public void connectionAcquired(Call call, Connection connection) {
logWithTime("connectionAcquired: " + System.identityHashCode(connection));
}
如果域支持,Okhttp 默认使用 h2 协议。
目的是以某种方式检测如果域在 h2 上并且 okhttp 默认为 h2,开发人员如何确认所有调用都被多路复用并在单个 TCP 连接上进行?
我尝试按照 Jesse Wilson 的建议使用 CustomEventListener
不过,我无法获得 100% 的确认。试图获取连接信息
```@Override
public void connectionAcquired(Call call, Connection connection) {
logWithTime("connectionAcquired: " + connection);
}
```
连接对象给出 Route
地址、端口、代理、socketAddress 以及 cipherSuit 和协议。虽然协议是 h2,如连接对象所示,但我想知道连接实际上是多路复用的,并且通过单个连接。没有关于连接 ID 或任何确认相同信息的信息。请建议。
示例日志:
[7 毫秒] 已获取连接:连接{http://api.hotstar.com:443 , proxy=DIRECT hostAddress=http://api.hotstar.com/106.51.146.149:443 ... cipherSuite=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 协议=h2}
尝试打印连接身份哈希码。如果连接不同,它们将具有不同的值。
public void connectionAcquired(Call call, Connection connection) {
logWithTime("connectionAcquired: " + System.identityHashCode(connection));
}