okhttp - 如何获取 http2 客户端(如 okhttp 或 java 11 httpclient)中的 Max_concurrent_streams 数量和流 id

标签 okhttp http2

我对 http2 有以下要求。 1)在启动客户端http连接时,我应该能够设置http2服务器支持的Max_concurrent_streams,并相应地处理失败情况。

2) 获取流的流ID并分配优先级。

我检查了 okhttp 客户端和 Java11 http 客户端。但找不到任何方法来实现相同的目标。

请告诉我有什么办法可以实现这些。

最佳答案

如果需要处理 HTTP/2 协议(protocol)的底层细节,可以使用 JettyHTTP2Client

请注意,它可以支持的最大并发流数是由服务器决定的,客户端无法修改该值。

客户端可以向服务器发送其支持的最大并发流数,但该数字指的是服务器可以发送到客户端的推送流。

使用HTTP2Client API,您可以轻松访问流id,并且能够向服务器发送PRIORITY帧进行分配(并修改)请求的优先级。

This是如何使用 HTTP2Client 的简单示例。

您可以在 this directory 中找到更多示例.

关于okhttp - 如何获取 http2 客户端(如 okhttp 或 java 11 httpclient)中的 Max_concurrent_streams 数量和流 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59044142/

相关文章:

android - Retrofit2 204 No Content 有内容异常

tomcat - CloseNowException : This stream is not writeable

java - Handshaker.algorithmConstraints

java - 如何在 Java 11 http 客户端中保持连接

Java OKHTTP SocketTimeoutException 与并发多线程请求

android - 在 Flutter 中处理 Cookie

android - OkHttp 支持低于 21 的 SDK 版本

spdy - 没有 SPDY 的 HTTP/2 是否可行?

ssl - grpc 中的不安全连接是什么意思?

java - OkHttp 是否有类似于 Unirest 的字段方法来创建 RequestBody 的更简单的方法?