私は、OkHttpを使用してHTTP/2ベースのプロトコルのクライアントを実装しようとしています。このプロトコルは基本的に、カスタムTCPプロトコルを介した暗号化されていないHTTP/2-Prior-Knowledgeストリームです(はい、壊れていることは分かっていますが、変更できません)。OkHttpプロトコルの選択を拡張する
OkHttp3はTCPを使用している場合にのみHTTP/2事前知識をサポートしているようですので、自分のプロトコルを実装するカスタムSSLSocketFactory
とSSLSocket
を構築しました。私のリモートはHTTP/1.1-> HTTP/2のアップグレードをサポートしていないので、事前知識が必要です。OkHttpはTLS拡張を介してのみサポートされているようですが、プロトコル選択コードis platform-dependent 。
OkHttpの半分を再実装したり、OkHttpクラスまたはJDK内部クラスに反映させたりすることを含まないプロトコル選択ロジックにフックする方法はありますか?たぶん偽TLSハックがなくても? RealConnection
を置き換えることは現実的ではないようです。なぜなら、okhttpはあなたが実装できるどんな種類のConnectionFactory
も提供しないからです。