sgcHTTP: componentes de HTTP/2, gRPC e Google Cloud para Delphi e C++ Builder
Produto autônomo HTTP/2, gRPC & Google Cloud

sgcHTTP: componentes de HTTP/2, gRPC e Google Cloud para Delphi e C++ Builder

Cinco componentes cliente cobrem três funções. O TsgcHTTP2Client fala HTTP/2 com streams multiplexados sobre uma única conexão TLS e compressão de cabeçalhos HPACK. O TsgcGRPCClient é um cliente gRPC construído sobre ele, para chamadas unárias e em streaming de Protocol Buffers. Mais três classes alcançam o Google Cloud sobre HTTPS puro: Pub/Sub, Calendar e Firebase Cloud Messaging. O sgcHTTP é autônomo, ele já traz embutido o runtime sgcWebSockets Core sobre o qual os cinco são construídos.

Código-fonte completo
Delphi 7 a 13 & C++ Builder
Runtime embutido sgcWebSockets Core O runtime de HTTP, TLS e JSON por baixo de todos os clientes
HTTP/2 TsgcHTTP2Client
gRPC TsgcGRPCClient
2 Componentes de paleta Cliente HTTP/2 & cliente gRPC, uma página na paleta
5 Classes cliente no total HTTP/2, gRPC e três clientes Google Cloud
3 Serviços Google Cloud Pub/Sub, Calendar e Firebase Cloud Messaging
100% Código-fonte incluído Os cinco clientes e o runtime Core embutido
12 Meses de atualizações Toda versão lançada enquanto a sua licença estiver ativa

Duas coisas que vale saber antes

O que o sgcHTTP precisa de você, e o que não precisa. As duas respostas são curtas.

O sgcHTTP é autossuficiente

Autônomo, o runtime sgcWebSockets Core está incluído: a pilha de cliente HTTP/TLS pela qual todo componente envia as suas requisições, e a camada JSON que decodifica as respostas do Google Cloud. Um único SKU, um único instalador.

Toda licença inclui o código-fonte completo, então os cinco clientes e o runtime por baixo deles são depurados passo a passo no seu próprio debugger, em vez de desaparecer dentro de um binário.

Complemento necessário para dois dos cinco

HTTP/2 & gRPC precisam do sgcCustomIndy

O HTTP/2 negocia o protocolo h2 com ALPN durante o handshake TLS, e a biblioteca Indy padrão que acompanha o RAD Studio não suporta ALPN. O cliente HTTP/2 e o cliente gRPC do sgcHTTP são construídos sobre o sgcCustomIndy em vez disso, que é adicionado ao seu carrinho automaticamente quando você pede o sgcHTTP. Já possui uma licença? Remova-o no checkout.

Os três clientes Google Cloud, Pub/Sub, Calendar e Firebase Cloud Messaging, são HTTPS puro. Eles rodam sobre o runtime Core puro e não precisam do sgcCustomIndy de forma alguma.

Dois componentes de paleta, três clientes Google Cloud

O cliente HTTP/2 e o cliente gRPC são componentes não visuais na página de paleta SGC HTTP, declarados na unit sgcHTTP. Solte um em um formulário ou crie-o em código, defina as opções de conexão, conecte os eventos e chame os métodos de requisição tipados. Os três clientes Google Cloud vivem na mesma unit como classes apenas de código, não há nada para soltar em um formulário: crie um, defina GoogleCloudOptions, e chame os métodos diretamente.

HTTP/21 componente

Streams multiplexados sobre uma única conexão TLS

O TsgcHTTP2Client fala HTTP/2 (RFC 9113): múltiplas requisições compartilham uma única conexão TCP como streams independentes, então uma resposta lenta não bloqueia as outras atrás dela. Os cabeçalhos são comprimidos com HPACK, e o protocolo h2 é negociado durante o handshake TLS via ALPN, a razão pela qual o componente é construído sobre o sgcCustomIndy em vez da biblioteca Indy padrão. Todo verbo é coberto, Connect, Get, Post, Put, Patch, Delete e Options, cada um com uma chamada síncrona e uma gêmea Async. Eventos expõem o ciclo de vida da conexão: OnHTTP2Connect, OnHTTP2Response, OnHTTP2ResponseFragment para corpos em chunks, OnHTTP2PushPromise para server push, OnHTTP2GoAway e OnHTTP2Disconnect. HTTP2Options configura o frame de settings local, e TLSOptions e Authentication vêm do restante da pilha HTTP do sgc.

TsgcHTTP2Client Requer sgcCustomIndy
gRPC1 componente

RPC unário e em streaming sobre o cliente HTTP/2

O TsgcGRPCClient é construído sobre o cliente HTTP/2, então herda a conexão multiplexada e adiciona o formato de wire do gRPC por cima: mensagens Protocol Buffers com prefixo de tamanho sobre streams HTTP/2. Call e CallAsync cobrem RPCs unários, ServerStreamingCall lida com um stream de respostas para uma requisição, e OpenClientStream/SendStreamMessage/CloseClientStream mais OpenBidiStream/SendBidiMessage/CloseBidiStream cobrem RPCs de client-streaming e bidirectional-streaming. OnGRPCResponse, OnGRPCStreamMessage e OnGRPCStreamEnd entregam o tráfego, e RetryPolicy, Interceptors e ServiceConfig adicionam comportamento de retry, lógica transversal e configuração de serviço sem tocar nos pontos de chamada. Assim como o cliente HTTP/2 sobre o qual é construído, ele precisa do sgcCustomIndy para o ALPN.

TsgcGRPCClient Requer sgcCustomIndy
Google Cloud3 classes

Pub/Sub, Calendar e notificações push, HTTPS puro

Mais três classes alcançam serviços Google Cloud sobre HTTPS puro, autenticadas com uma conta de serviço Google, e nenhuma delas precisa do sgcCustomIndy. O TsgcHTTPGoogleCloud_PubSub_Client publica e lê mensagens e gerencia tópicos, assinaturas e snapshots: Publish, Pull, Acknowledge, CreateTopic, CreateSubscription e o resto da superfície REST do Pub/Sub. O TsgcHTTPGoogleCloud_Calendar_Client encapsula a Google Calendar API v3: NewCalendar, NewEvent, LoadEvents e LoadCalendars, com os eventos OnGetCalendar e OnGetCalendarEvent para sincronização. O TsgcHTTPGoogleCloud_FCM_Client envia um payload de notificação push para um projeto Firebase com uma única chamada, SendMessage. As três são classes apenas de código: crie uma, defina GoogleCloudOptions, chame os métodos.

TsgcHTTPGoogleCloud_PubSub_Client TsgcHTTPGoogleCloud_Calendar_Client TsgcHTTPGoogleCloud_FCM_Client

Duas dependências, não cinco

As cinco classes se dividem de forma clara pelo que precisam por baixo. HTTP/2 e gRPC precisam de ALPN, o que significa sgcCustomIndy. O Google Cloud não precisa de nada além de HTTPS e uma conta de serviço, o que o runtime Core embutido já fornece.

HTTP/2 precisa de ALPN, então precisa do sgcCustomIndy

O Application-Layer Protocol Negotiation escolhe h2 durante o handshake TLS, e a biblioteca Indy padrão que acompanha o RAD Studio não tem suporte a ALPN. O TsgcHTTP2Client é construído sobre o sgcCustomIndy, o build Indy personalizado da eSeGeCe, em vez disso.

gRPC é Protocol Buffers em cima do cliente HTTP/2

O TsgcGRPCClient não abre a sua própria conexão, a sua propriedade Client é um TsgcHTTP2Client. As chamadas unárias, server-streaming, client-streaming e bidirecionais viajam como streams HTTP/2 por baixo.

Google Cloud é HTTPS mais uma conta de serviço

Os três clientes Google Cloud se autenticam com GoogleCloudOptions.JWT, o id de projeto, o e-mail de cliente e a chave privada de uma conta de serviço Google, e chamam as APIs REST sobre a pilha HTTPS pura do runtime Core. OnAuthToken e OnAuthTokenError expõem a troca de token.

O runtime Core está na caixa

Autônomo, o runtime sgcWebSockets Core está incluído. Ele contribui com a pilha de cliente HTTP/TLS que cada um dos cinco clientes chama, e o seu código-fonte completo faz parte do pacote como tudo o mais.

HTTP/2 e gRPC, lado a lado

Os dois componentes são declarados na unit sgcHTTP, e o TsgcGRPCClient carrega a sua própria conexão HTTP/2 através da propriedade Client. O mesmo código compila do Delphi 7 ao 13 e no C++ Builder.

uses
  sgcHTTP;

var
  HTTP2: TsgcHTTP2Client;
  GRPC: TsgcGRPCClient;
begin
  // HTTP/2: requisições multiplexadas sobre uma única conexão TLS
  HTTP2 := TsgcHTTP2Client.Create(nil);
  HTTP2.Host := 'https://api.example.com';
  HTTP2.OnHTTP2Response := HTTP2Response;
  HTTP2.Active := True;

  HTTP2.GetAsync('/v1/status');

  // gRPC: construído sobre o cliente HTTP/2, RPC unário e em streaming
  GRPC := TsgcGRPCClient.Create(nil);
  GRPC.Client.Host := 'https://grpc.example.com';
  GRPC.OnGRPCResponse := GRPCResponse;

  GRPC.CallAsync('example.OrderService', 'GetOrder', RequestBytes);
end;

procedure TForm1.HTTP2Response(Sender: TObject;
  const Connection: TsgcHTTP2ConnectionClient;
  const Request: TsgcHTTP2RequestProperty;
  const Response: TsgcHTTP2ResponseProperty);
begin
  Memo1.Lines.Add(Response.DataString);
end;

procedure TForm1.GRPCResponse(Sender: TObject;
  const aResponse: TsgcGRPCResponse);
begin
  Memo1.Lines.Add(aResponse.DataString);
end;
// include: sgcHTTP.hpp

// HTTP/2: requisições multiplexadas sobre uma única conexão TLS
TsgcHTTP2Client *HTTP2 = new TsgcHTTP2Client(this);
HTTP2->Host = "https://api.example.com";
HTTP2->OnHTTP2Response = HTTP2Response;
HTTP2->Active = true;

HTTP2->GetAsync("/v1/status");

// gRPC: construído sobre o cliente HTTP/2, RPC unário e em streaming
TsgcGRPCClient *GRPC = new TsgcGRPCClient(this);
GRPC->Client->Host = "https://grpc.example.com";
GRPC->OnGRPCResponse = GRPCResponse;

GRPC->CallAsync("example.OrderService", "GetOrder", RequestBytes);

void __fastcall TForm1::HTTP2Response(TObject *Sender,
    const TsgcHTTP2ConnectionClient* Connection,
    const TsgcHTTP2RequestProperty* Request,
    const TsgcHTTP2ResponseProperty* Response)
{
  Memo1->Lines->Add(Response->DataString);
}

void __fastcall TForm1::GRPCResponse(TObject *Sender,
    const TsgcGRPCResponse* aResponse)
{
  Memo1->Lines->Add(aResponse->DataString);
}

Uma dependência para dois clientes, nenhuma para três

O cliente HTTP/2 e o cliente gRPC são construídos sobre o sgcCustomIndy, que cobre a mesma faixa de plataformas do próprio sgcWebSockets. Os clientes Google Cloud são HTTPS puro, então rodam onde quer que o runtime Core rode.

TsgcHTTP2Client & TsgcGRPCClient Construídos sobre o sgcCustomIndy para o ALPN
Windows Win32 Windows Win64 Linux64 macOS iOS Android
Clientes Google Cloud HTTPS puro, sem necessidade de sgcCustomIndy
Windows Win32 Windows Win64 Linux64 macOS iOS Android
Suporte de IDE Uma única árvore de código-fonte, pacotes de design-time por versão
Delphi 7 a 13 C++ Builder
Instalador de avaliação A avaliação All-Access do sgcWebSockets inclui os componentes sgcHTTP
Um único download, as cinco classes

Baixar o instalador de avaliação →

Um pacote autônomo

O sgcHTTP é licenciado por conta própria, a partir de €249 para um único desenvolvedor. Todas as licenças incluem código-fonte completo, 1 ano de atualizações e de 50% a 70% de desconto na renovação: 50% ao renovar um pacote, 60% para dois, 70% para três ou mais. sgcAI, sgcMQ, sgcSocial, sgcCustomIndy, sgcAuth e sgcHTTP contam cada um como um pacote. O sgcHTTP também está incluído no pacote All-Access.

sgcHTTP

€249

Licenças Single, Team e Site disponíveis.

  • Cliente HTTP/2 com multiplexação & HPACK
  • Cliente gRPC, RPC unário & em streaming
  • Clientes Google Cloud Pub/Sub, Calendar & FCM
  • Runtime sgcWebSockets Core incluído
  • Delphi 7 a 13 & C++ Builder
  • Código-fonte completo
  • 1 ano de atualizações

HTTP/2 e gRPC precisam do complemento sgcCustomIndy. O checkout o adiciona automaticamente, e você pode removê-lo se já possuir uma licença.

O checkout lista três itens: o direito de uso do runtime sgcWebSockets Core, cobrado a zero, o próprio pacote sgcHTTP, e o complemento sgcCustomIndy, adicionado automaticamente. Detalhes completos de preços.

3,000+Developers
20+Years
761+Components
30+API Integrations
5Platforms
Garantia de reembolso de 30 diasNão ficou satisfeito? Solicite o reembolso total em até 30 dias após a compra. Ver política de reembolso

HTTP moderno, gRPC e Google Cloud a partir de código nativo

HTTP/2 multiplexado, gRPC em streaming e três clientes Google Cloud, com o runtime embutido e o código-fonte completo na caixa. Baixe o instalador de avaliação All-Access e experimente os cinco componentes hoje mesmo.

Outros produtos da eSeGeCe

Combine o sgcHTTP com as nossas outras bibliotecas de componentes para Delphi, C++ Builder e .NET.

sgcCustomIndy

A biblioteca Indy personalizada sobre a qual os clientes HTTP/2 e gRPC do sgcHTTP são construídos: ALPN, TLS 1.3 e linkagem estática do OpenSSL.

Saiba mais →

sgcWebSockets

A biblioteca completa: clientes e servidores WebSocket, HTTP/2, gRPC, IoT, P2P e componentes de IA. A sua edição Enterprise também inclui o gRPC.

Saiba mais →

sgcAI

Componentes de IA, LLM e MCP. Um único componente de chat alcança OpenAI, Anthropic, Gemini, DeepSeek, Ollama, Grok e Mistral.

Saiba mais →

sgcMQ

Componentes cliente nativos de MQTT 3.1.1/5.0, AMQP 0.9.1, AMQP 1.0, Apache Kafka e STOMP, com o runtime Core embutido.

Saiba mais →

sgcSocial

Componentes cliente de WhatsApp Business Cloud API e Telegram TDLib, com o runtime Core embutido.

Saiba mais →

sgcQUIC

Componentes cliente e servidor QUIC (RFC 9000) e HTTP/3 (RFC 9114) construídos sobre o mecanismo QUIC nativo do OpenSSL 3.5.

Saiba mais →