Okhttp3与consrypt一起在jdk8中支持http2

时间:2019-02-14 18:08:08

标签: java okhttp3 http2 okhttp

我一直在围绕okhttp3进行测试以发出http2请求,我的标准是使用jdk8本身实现http2连接。我知道可以通过升级到jdk 9或使用conscrypt作为默认提供程序(例如

)来轻松实现
Security.insertProviderAt(Conscrypt.newProvider(), 1);

但是插入这样的提供程序会影响应用程序级别,我只想将其限制为使用http2连接的sslSocket,其他所有套接字都应使用默认提供程序,我知道 apache-httpclient-5 beta 提供了称为自定义TLSstrategy的选项,该选项有助于仅将conscrypt分配为特定SSLSocketFactory的默认提供程序

请帮助

TIA

1 个答案:

答案 0 :(得分:0)

并非真正为这种情况设计的,而是假设如果您拥有Conscrypt并已注册,那么您会很乐意并愿意使用它。

OkHttp平台是自动选择的,并且是JVM单例,因此您不能覆盖每个客户端或每个连接。

您可以为客户端覆盖SSLSocketFactory。但是,OkHttp还要求HTTP / 1.1是可接受的协议之一,并且在客户端和服务器协商HTTP / 1.1或H2之前将选择TLS提供程序。所以这可能对您不起作用。