android - 如何通过okhttp验证Http/2?

标签 android okhttp http2

如果域支持,Okhttp 默认使用 h2 协议(protocol)。 目的是以某种方式检测如果域在 h2 上并且 okhttp 默认为 h2,开发人员如何确认所有调用都被多路复用并在单个 TCP 连接上进行? 我尝试按照 Jesse Wilson 的建议使用 CustomEventListener 不过,我无法获得 100% 的确认。试图获取连接信息

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

连接对象给出了 Route 地址、端口、代理、socketAddress 以及 cipherSuit 和协议(protocol)。虽然协议(protocol)是 h2,如连接对象所示,但我想知道连接实际上是多路复用的,并且通过单个连接。没有关于连接 ID 或任何确认相同信息的信息。请建议。 示例日志: [7 毫秒] connectionAcquired:连接{http://api.hotstar.com:443 , 代理=直接主机地址= http://api.hotstar.com/106.51.146.149:443 ... cipherSuite=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 协议(protocol)=h2}

最佳答案

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

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

关于android - 如何通过okhttp验证Http/2?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53468666/

相关文章:

java - 在Java中传递动态类对象

android - 使用 okhttp-3.12.0 Android 时未找到类 "kotlin.text.Charsets"错误

node.js - NodeJS 原生 http2 支持

http - 即使强制尝试设置为 false,Go http 请求也会回退到 http2

Jetty HTTP2 服务器推送支持

java - onResume 后 Activity 未重新绑定(bind)到前台服务

android - Ellipsize 适用于提示,但不适用于文本

android - Retrofit 在 OKHttp 2.0 的类路径错误上检测到不受支持的 OkHttp

java - import com.google 无法解析

android - RecyclerView 中的确认和撤消删除