TsgcHTTP2Client | Request HTTP/2-Methode

Der HTTP/2-Client kann im blockierenden und nicht-blockierenden Modus arbeiten; intern arbeitet die Komponente in einem sekundären Thread, und Anfragen werden asynchron verarbeitet, aber Sie können eine Anfrage aufrufen und warten, bis diese Anfrage abgeschlossen ist.

 

Nachfolgend finden Sie ein Beispiel, wie ein Client eine HTML-Seite von einem HTTP/2-Server anfordern kann und wie es in beiden Modi funktionieren kann.

Asynchroner Modus

Rufen Sie die folgende URL ab: https://www.google.com und werden Sie benachrichtigt, wenn der Client die vollständige Antwort erhält. Nachdem Sie die Methode GETASYNC aufgerufen haben, wird der Prozess fortgesetzt, und das Ereignis OnHTTP2Response wird aufgerufen, wenn die Antwort empfangen wird.

 


oClient := TsgcHTTP2Client.Create(nil);
oClient.OnHTTP2Response := OnHTTP2ResponseEvent;
oClient.GetAsync('https://www.gooogle.com');
procedure OnHTTP2ResponseEvent(Sender: TObject; const Connection: TsgcHTTP2ConnectionClient; 
  const Request: TsgcHTTP2RequestProperty; const Response: TsgcHTTP2ResponseProperty);
begin
  ShowMessage(Response.Headers.Text + #13#10 + Response.DataString);
end;

 

Blocking Mode

Rufen Sie die folgende URL ab: https://www.google.com und warten Sie, bis der Client die vollständige Antwort empfängt. Nachdem Sie die GET-Methode aufgerufen haben, wartet der Prozess, bis die Antwort empfangen wird oder das Time-out erreicht ist.

Sie können über die Eigenschaft Response des HTTP/2-Clients auf die rohen Antwortdaten zugreifen. Hier können Sie auf rohe Header, den Statusantwortcode, das Charset und mehr zugreifen.

 


oClient := TsgcHTTP2Client.Create(nil);
vResponse := oClient.Get('https://www.gooogle.com');
if oClient.Response.Status = 200 then
  ShowMessage('Response from server: ' + vResponse)
else
  ShowMessage('Response Code: ' + IntToStr(oClient.Response.Status));