Http2 Notes - rahmanusta/java9-workshop GitHub Wiki

Http2 Notes

keytool -genkeypair -alias http2 -keyalg RSA -keysize 2048 -keystore http2.keystore -validity 3650
keytool -importkeystore -srckeystore http2.keystore -destkeystore http2.p12 -deststoretype pkcs12

Run SSL server and client by entering the commands:
$ java -jar -Djavax.net.ssl.keyStore=keystore -Djavax.net.ssl.keyStorePassword=password "...JavaSSLServer.jar"
$ java -jar -Djavax.net.ssl.trustStore=keystore -Djavax.net.ssl.trustStorePassword=password "...JavaSSLClient.jar"
// GET Example
HttpClient httpClient = HttpClient.newHttpClient();
HttpRequest httpRequest = HttpRequest.newBuilder(URI.create("https://localhost:8443/get")).GET().build();
HttpResponse<String> httpResponse = httpClient.send(httpRequest, HttpResponse.BodyHandler.asString());
HttpClient.Version version = httpResponse.version();
String body = httpResponse.body();
System.out.println(version);
System.out.println(body);

// Post Example
HttpClient httpClient = HttpClient.newHttpClient();
HttpRequest httpRequest = HttpRequest
		.newBuilder(URI.create("https://localhost:8443/post"))
		.POST(fromString("Hi Devoxx!"))
		.build();
HttpResponse<String> httpResponse = httpClient.send(httpRequest, HttpResponse.BodyHandler.asString());
HttpClient.Version version = httpResponse.version();
String body = httpResponse.body();
System.out.println(version);
System.out.println(body);
@RestController
public class HellloController {

    @GetMapping("/get")
    public String get() {
        return "Hello world";
    }

    @GetMapping("/post")
    public String post(@RequestBody String body) {
        return Objects.isNull(body) ? "Hello world" : body;
    }
}
server.ssl.key-store=classpath:http2.keystore
server.ssl.key-store-password=123456
server.ssl.key-alias=http2

server.http2.enabled=true

server.port=8443
⚠️ **GitHub.com Fallback** ⚠️