Cómo personalizar el encabezado "host" en el cliente http Java

Aquí está mi código:

HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("http://127.0.0.1:8081/"))
    .header("Host", "test.example.com")
    .build();
client.send(request, HttpResponse.BodyHandlers.ofString());

Como resultado, veo que el código anterior envía:

GET / HTTP/1.1
Connection: Upgrade, HTTP2-Settings
Content-Length: 0
Host: 127.0.0.1:8081
HTTP2-Settings: AAEAAEAAAAIAAAABAAMAAABkAAQBAAAAAAUAAEAA
Upgrade: h2c
User-Agent: Java-http-client/10
Host: test.example.com

omo puedes ver, envía dosHost encabezados (el de URI y el que especifiqué), pero me gustaría que enviara elHost encabezado que especifiqué, no el del URI. ¿Es posible con este cliente?

EDIT: en Java 11, empeora aún más (debe cambiar la línea client.send a:client.send(request, HttpResponse.BodyHandlers.ofString());):

java.lang.IllegalArgumentException: restricted header name: "Host"

¿Cómo puedo personalizar ese encabezado (necesario para probar hosts virtuales)?

También probé elsetHeader y obtener exactamente el mismo problema (dobleHost encabezados, o la excepción).

EDIT: informé unJDK bug.

Respuestas a la pregunta(2)

Su respuesta a la pregunta