TsgcHTTP2Client › Yöntemler › Post
Bir stream yükleyerek ve yanıt alınana kadar bloke ederek senkron bir HTTP/2 POST gerçekleştirir.
function Post(const aURL: string; const aSource: TStream): string;
| Name | Type | Açıklama |
|---|---|---|
aURL | const string | POST isteğini alacak mutlak URL. |
aSource | const TStream | Yüklenecek istek gövdesini içeren stream. Size'ı content-length sözde başlığını ayarlar. |
Sunucudan alınan ve dize olarak çözümlenen yanıt gövdesi. (string)
Bu aşırı yüklemeyi, tam yanıtın bir dize olarak döndürülebileceği JSON veya form verileri gibi metinsel alışverişler için kullanın. Gövdenin medya türünü bildirmek için çağırmadan önce Request.ContentType öğesini yapılandırın.
oBody := TStringStream.Create('{"name":"John"}');
try
oClient.Request.ContentType := 'application/json';
vResponse := oClient.Post('https://api.example.com/users', oBody);
finally
oBody.Free;
end;
procedure Post(const aURL: string; const aSource: TStream; const aResponseContent: TStream);
| Name | Type | Açıklama |
|---|---|---|
aURL | const string | POST isteğini alacak mutlak URL. |
aSource | const TStream | İstek yükünü sağlayan akış. |
aResponseContent | const TStream | Sunucunun ham yanıt baytlarını alacak stream; ikili veya büyük yanıtlar için kullanışlıdır. |
Tamamen stream tabanlı varyant: hem istek yükü hem de sunucu yanıtı TStream örnekleri aracılığıyla işlenir, her iki tarafta da bir string dönüşümünün ek yükünü önler. İkili yükler döndüren dosya yüklemeleri için bu aşırı yüklemeyi (overload) tercih edin.
oIn := TFileStream.Create('upload.bin', fmOpenRead);
oOut := TMemoryStream.Create;
try
oClient.Post('https://api.example.com/upload', oIn, oOut);
finally
oOut.Free;
oIn.Free;
end;