HTTP/3 Client Component — sgcQUIC | eSeGeCe

HTTP/3 Client

TsgcHTTP3Client — an HTTP/3 client (RFC 9114) that sends requests over QUIC with QPACK header compression, Alt-Svc discovery, server push, Extended CONNECT tunnels and WebTransport sessions. The same HTTP semantics you know, on a new transport, in Delphi, C++ Builder and .NET.

TsgcHTTP3Client

Connect to a host and port, then issue requests with the verbs you already use. QPACK, Alt-Svc, push and WebTransport are exposed as methods and events. Built on the native OpenSSL 3.5 QUIC engine.

Component class

TsgcHTTP3Client

Protocol

HTTP/3 (RFC 9114) over QUIC

Family

HTTP/3

Languages

Delphi, C++ Builder, .NET

A GET request over HTTP/3

Connect to a host and port, then issue requests. The default port is 443. Headers are compressed with QPACK, and OnAltSvc tells you when HTTP/3 is advertised.

uses
  sgcHTTP3_Client;

var
  oClient: TsgcHTTP3Client;
  vBody: string;
begin
  oClient := TsgcHTTP3Client.Create(nil);
  oClient.OnResponse := OnResponseHandler;
  oClient.OnAltSvc   := OnAltSvcHandler;

  oClient.Connect('www.example.com', 443);
  vBody := oClient.Get('https://www.example.com/');   // QPACK-compressed request
  oClient.Disconnect;
end;

// WebTransport session over HTTP/3 (RFC 9220):
oClient.WebTransportConnect('https://www.example.com/wt');
// includes: sgcHTTP3_Client.hpp

TsgcHTTP3Client *oClient = new TsgcHTTP3Client(NULL);
oClient->OnResponse = OnResponseHandler;
oClient->OnAltSvc   = OnAltSvcHandler;

oClient->Connect("www.example.com", 443);
String vBody = oClient->Get("https://www.example.com/");   // QPACK-compressed request
oClient->Disconnect();

// WebTransport session over HTTP/3 (RFC 9220):
oClient->WebTransportConnect("https://www.example.com/wt");
using esegece.sgcWebSockets;

var oClient = new TsgcHTTP3Client();
oClient.OnResponse += OnResponseHandler;
oClient.OnAltSvc   += OnAltSvcHandler;

oClient.Connect("www.example.com", 443);
var vBody = oClient.Get("https://www.example.com/");   // QPACK-compressed request
oClient.Disconnect();

// WebTransport session over HTTP/3 (RFC 9220):
oClient.WebTransportConnect("https://www.example.com/wt");

Key properties & methods

The members you reach for most often.

Requests

Get, Head, Post, Put, Delete and the other verbs (including the IETF QUERY method) run as blocking calls, most with an asynchronous variant.

Connection

Connect(aHost, aPort) and Disconnect open and close the QUIC connection; Host and Port report the current target.

Alt-Svc & push

OnAltSvc surfaces HTTP/3 availability; SetMaxPushId, OnPushPromise and OnPush control server push.

Tunnels & WebTransport

ExtendedConnect, TunnelSend and OnTunnelData drive RFC 9220 tunnels; WebTransportConnect opens a WebTransport session.

Tuning

UserAgent, ConnectTimeout, ReadTimeout and MaxResponseSize tune the client.

Events

OnResponse, OnError, OnConnect, OnDisconnect and OnGoAway report responses and the connection lifecycle.

Keep exploring

Online HelpFull API reference and usage guide for sgcQUIC.
All sgcQUIC ComponentsBrowse the full feature matrix of all four components.
Download Free TrialRun the HTTP/3 client against any HTTP/3-enabled origin.
PricingSingle, Team and Site licenses with full source code.
Best value: All-AccessEvery eSeGeCe product, Premium Support included, from €1,059/year.
See All-Access pricing

Ready to Get Started?

Download the free trial and send your first HTTP/3 request from Delphi, C++ Builder and .NET.