如何在 OKHttp 客户端连接中显式打开多个流
How to open mulitple streams explicitly in OKHttp client connection
我正在使用 OkHTTP 客户端访问 HTTP/2 服务器。我有一个用例,我想通过同一连接打开多个流。
我正在使用以下代码创建 OkHTTP 客户端。
ConnectionPool connectionPool = new ConnectionPool(5,
CONNECTION_POOL_TIMEOUT_MILLISECONDS, TimeUnit.MILLISECONDS);
return new OkHttpClient.Builder()
.connectTimeout(5,TimeUnit.SECONDS)
.writeTimeout(5, TimeUnit.SECONDS)
.readTimeout(5, TimeUnit.SECONDS)
.connectionPool(connectionPool)
.build();
这个客户端在连接池中可以有5个打开的连接。
现在我想使用上面的客户端发出以下请求,
okHttpClient.newCall(request1.build()).execute()
okHttpClient.newCall(request2.build()).execute()
而且我希望这些请求作为同一连接上的单独流,而不是新连接。我该怎么做?
如果符合条件,OkHttp 将自动为您的请求使用相同的套接字。请求需要是 HTTPS,服务器需要支持 HTTP/2,并且您的代码必须 运行 on Android 5+ or Java 9+.
OkHttp 将为唯一的服务器地址使用相同的连接。通过该连接发送的请求每次都会在新流中使用。
我正在使用 OkHTTP 客户端访问 HTTP/2 服务器。我有一个用例,我想通过同一连接打开多个流。
我正在使用以下代码创建 OkHTTP 客户端。
ConnectionPool connectionPool = new ConnectionPool(5,
CONNECTION_POOL_TIMEOUT_MILLISECONDS, TimeUnit.MILLISECONDS);
return new OkHttpClient.Builder()
.connectTimeout(5,TimeUnit.SECONDS)
.writeTimeout(5, TimeUnit.SECONDS)
.readTimeout(5, TimeUnit.SECONDS)
.connectionPool(connectionPool)
.build();
这个客户端在连接池中可以有5个打开的连接。 现在我想使用上面的客户端发出以下请求,
okHttpClient.newCall(request1.build()).execute()
okHttpClient.newCall(request2.build()).execute()
而且我希望这些请求作为同一连接上的单独流,而不是新连接。我该怎么做?
如果符合条件,OkHttp 将自动为您的请求使用相同的套接字。请求需要是 HTTPS,服务器需要支持 HTTP/2,并且您的代码必须 运行 on Android 5+ or Java 9+.
OkHttp 将为唯一的服务器地址使用相同的连接。通过该连接发送的请求每次都会在新流中使用。