我正在使用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()
我希望这些请求作为单独的流在同一个连接上,而不是新的连接。我怎么能这样做?
答案 0 :(得分:1)
如果符合条件,OkHttp会自动为您的请求使用相同的套接字。请求必须是HTTPS,服务器需要支持HTTP / 2,并且您的代码必须在Android 5+或Java 9 +上运行。
答案 1 :(得分:0)
OkHttp将使用相同的连接作为唯一服务器地址。通过该连接发送的请求每次都会在新流中使用。