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