package test.http; import java.io.IOException; import java.nio.charset.StandardCharsets; import java.util.concurrent.ExecutionException; import com.firefly.client.http2.ClientHTTPHandler; import com.firefly.client.http2.HTTP2Client; import com.firefly.client.http2.HTTPClientConnection; import com.firefly.codec.http2.model.HostPortHttpField; import com.firefly.codec.http2.model.HttpFields; import com.firefly.codec.http2.model.HttpHeader; import com.firefly.codec.http2.model.HttpScheme; import com.firefly.codec.http2.model.HttpVersion; import com.firefly.codec.http2.model.MetaData; import com.firefly.codec.http2.stream.HTTP2Configuration; import com.firefly.utils.concurrent.FuturePromise; import com.firefly.utils.io.BufferUtils; public class HTTP2ClientTLSDemo2 { public static void main(String[] args) throws InterruptedException, ExecutionException, IOException { final HTTP2Configuration http2Configuration = new HTTP2Configuration(); http2Configuration.getTcpConfiguration().setTimeout(60 * 1000); http2Configuration.setSecureConnectionEnabled(true); HTTP2Client client = new HTTP2Client(http2Configuration); HTTPClientConnection httpConnection = null; try { FuturePromise<HTTPClientConnection> promise = new FuturePromise<>(); client.connect("127.0.0.1", 6655, promise); httpConnection = promise.get(); HttpFields fields = new HttpFields(); fields.put(HttpHeader.USER_AGENT, "Firefly Client 1.0"); if (httpConnection.getHttpVersion() == HttpVersion.HTTP_2) { httpConnection.send( new MetaData.Request("GET", HttpScheme.HTTP, new HostPortHttpField("127.0.0.1:6655"), "/index", HttpVersion.HTTP_1_1, fields), new ClientHTTPHandler.Adapter().messageComplete((req, resp, outputStream, conn) -> { System.out.println("message complete: " + resp.getStatus() + "|" + resp.getReason()); System.out.println(); System.out.println(); return true; }).content((buffer, req, resp, outputStream, conn) -> { System.out.print(BufferUtils.toString(buffer, StandardCharsets.UTF_8)); return false; }).badMessage((errCode, reason, req, resp, outputStream, conn) -> { System.out.println("error: " + errCode + "|" + reason); })); httpConnection.send( new MetaData.Request("GET", HttpScheme.HTTP, new HostPortHttpField("127.0.0.1:6655"), "/index_1", HttpVersion.HTTP_1_1, fields), new ClientHTTPHandler.Adapter().messageComplete((req, resp, outputStream, conn) -> { System.out.println("message complete: " + resp.getStatus() + "|" + resp.getReason()); System.out.println(); System.out.println(); return true; }).content((buffer, req, resp, outputStream, conn) -> { System.out.print(BufferUtils.toString(buffer, StandardCharsets.UTF_8)); return false; }).badMessage((errCode, reason, req, resp, outputStream, conn) -> { System.out.println("error: " + errCode + "|" + reason); })); } } finally { Thread.sleep(3000L); if (httpConnection != null) { httpConnection.close(); } client.stop(); } } }