TsgcHTTP2Client | Request HTTP/2 Method

HTTP/2 İstemcisi blocking ve non-blocking modda çalışabilir, dahili olarak bileşen ikincil bir iş parçacığında çalışır ve istekler eşzamansız olarak işlenir, ancak bir istek çağırabilir ve bu istek tamamlanana kadar bekleyebilirsiniz.

 

Bir istemcinin bir HTTP/2 Sunucusundan bir HTML sayfasını nasıl isteyebileceğine ve her iki modda nasıl çalışabileceğine dair bir örneği aşağıda bulabilirsiniz.

Asenkron Mod

Şu url'yi alın: https://www.google.com ve istemci tam yanıtı aldığında bilgilendirilin. GETASYNC yöntemini çağırdıktan sonra, işlem devam eder ve yanıt alındığında OnHTTP2Response olayı çağrılır.

 


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;

 

Engelleme Modu

Şu url'yi alın: https://www.google.com ve istemci tam yanıtı alana kadar bekleyin. GET yöntemini çağırdıktan sonra, işlem yanıt alınana veya zaman aşımına ulaşılana kadar bekler.

HTTP/2 istemcisinin Response özelliğini kullanarak Ham Yanıt verilerine erişebilirsiniz. Burada Ham Header'lara, Status yanıt koduna, Charset'e ve daha fazlasına erişebilirsiniz.

 


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));