2017-05-30 4 views
0

Es gibt eine list Java HTTP/2-Client-Implementierungen. Ich habe Jetty, Netty und OkHttp code examples gefunden und scheint, dass sie alle spezifische Version von ALPN library abhängig von jdk installiert haben müssen. Ich mag es nicht, weil es Probleme macht, wenn Sie nicht der einzige Entwickler des Projekts sind.Java HTTP/2-Client-Implementierungen ohne ALPN

Ich muss https URLs abfragen. Die Frage ist: Gibt es HTTP/2-Client-Implementierungen, die ALPN nicht verwenden? Arbeitscode Beispiele sind willkommen. Vielen Dank!

Antwort

1

OkHttp funktioniert ohne spezielle alpn-boot jars auf Java 9 beta, das ist automatisch. In Zukunft könnte OkHttp hoffentlich auch https://github.com/google/conscrypt unterstützen.

Ich glaube beide Jetty und Netty unterstützen HTTP/2 Vorkenntnisse (ohne NPN/ALPN).

z.B. Jetty

https://github.com/eclipse/jetty.project/blob/0c8273f2ca1f9bf2064cd9c4c939d2546443f759/jetty-http2/http2-http-client-transport/src/test/java/org/eclipse/jetty/http2/client/http/DirectHTTP2OverTLSTest.java#L86

HttpClientTransportOverHTTP2 transport = new HttpClientTransportOverHTTP2(new HTTP2Client()); 
    transport.setUseALPN(false); 
    client = new HttpClient(transport, newSslContextFactory()); 

ich für Netty glauben, dass es funktioniert, wenn Sie verwenden HttpToHttp2ConnectionHandler