Add http3 module: HTTP/3 in the Java HTTP Client (JEP 517), opt-in, discovery modes, fallback timings, proxy downgrade and a packet-loss comparison

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01KqJyCidz3ZgRyHABv2GVJh
This commit is contained in:
2026-09-30 20:27:46 +00:00
co-authored by Claude Sonnet 5.5
parent c8ff3acf09
commit fadfd05670
25 changed files with 617 additions and 0 deletions
+22
View File
@@ -0,0 +1,22 @@
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
/** The JEP 517 opt-in, client-wide or per request. Prints the version every response really used. */
public class OptIn {
public static void main(String[] args) throws Exception {
URI uri = URI.create(args[0]);
String where = args.length > 1 ? args[1] : "client"; // "client" or "request"
var builder = Tls.builder();
if (where.equals("client")) builder.version(HttpClient.Version.HTTP_3);
var client = builder.build();
var req = HttpRequest.newBuilder(uri);
if (where.equals("request")) req.version(HttpClient.Version.HTTP_3);
for (int i = 1; i <= 4; i++) {
var r = client.send(req.build(), HttpResponse.BodyHandlers.ofString());
System.out.println(where + "-level HTTP_3, request " + i + ": " + r.version());
}
client.close();
}
}