TsgcHTTP2Client | HTTP/2-methode aanvragen

HTTP/2 Client kan werken in blokkerende en niet-blokkerende modus. Intern werkt de component in een secundaire thread en worden verzoeken asynchroon verwerkt, maar u kunt een verzoek doen en wachten totdat het is voltooid.

 

Hieronder vindt u een voorbeeld van hoe een client een HTML-pagina kan opvragen bij een HTTP/2-server en hoe deze in beide modi kan werken.

Asynchrone modus

Haal de volgende URL op: https://www.google.com en ontvang een melding wanneer de client de volledige respons ontvangt. Nadat u de methode GETASYNC aanroept, gaat het proces verder en wordt de gebeurtenis OnHTTP2Response aangeroepen wanneer de respons is ontvangen.

 


TsgcHTTP2Client *oClient = new TsgcHTTP2Client();
oClient->OnHTTP2Response = OnHTTP2ResponseEvent;
oClient->GetAsync("https://www.gooogle.com");
void OnHTTP2ResponseEvent(TObject *Sender, const TsgcHTTP2ConnectionClient *Connection, 
  const TsgcHTTP2RequestProperty *Request, const TsgcHTTP2ResponseProperty *Response)
{
  ShowMessage(Response->Headers->Text + #13#10 + Response->DataString);
}

 

Blokkerende modus

Haal de volgende URL op: https://www.google.com en wacht totdat de client de volledige respons ontvangt. Nadat u de methode GET aanroept, wacht het proces totdat een respons is ontvangen of de time-out is bereikt.

U kunt toegang krijgen tot de ruwe responsgegevens via de eigenschap Response van de HTTP/2-client. Hier kunt u toegang krijgen tot ruwe headers, statusresponsecode, tekenset en meer.

 


TsgcHTTP2Client *oClient = new TsgcHTTP2Client();
vResponse = oClient->Get("https://www.gooogle.com");
if (oClient->Response->Status == 200)
  ShowMessage("Response from server: " + vResponse);
else
  ShowMessage("Response Code: " + IntToStr(oClient->Response->Status));