TsgcHTTP2ClientMethods › Post

Post メソッド

同期 HTTP/2 POST を実行し、ストリームをアップロードしてレスポンスを受信するまでブロックします。

オーバーロード

オーバーロード 1

構文

function Post(const aURL: string; const aSource: TStream): string;

パラメータ

名前タイプ説明
aURLconst stringPOST リクエストを受信する絶対 URL。
aSourceconst TStreamアップロードするリクエストボディを含むストリーム。その Sizecontent-length 疑似ヘッダーを設定します。

戻り値

文字列としてデコードされた、サーバーから受信したレスポンスボディ。(string

解説

完全なレスポンスを文字列として返せるJSONやフォームデータなどのテキストによるやり取りには、このオーバーロードを使用してください。ボディのメディアタイプをアドバタイズするには、呼び出す前にRequest.ContentTypeを構成してください。

使用例

oBody := TStringStream.Create('{"name":"John"}');
try
  oClient.Request.ContentType := 'application/json';
  vResponse := oClient.Post('https://api.example.com/users', oBody);
finally
  oBody.Free;
end;

オーバーロード 2

構文

procedure Post(const aURL: string; const aSource: TStream; const aResponseContent: TStream);

パラメータ

名前タイプ説明
aURLconst stringPOST リクエストを受信する絶対 URL。
aSourceconst TStreamリクエストペイロードを提供するストリーム。
aResponseContentconst TStreamサーバーの生のレスポンスバイトを受け取るストリーム。バイナリまたは大きな応答に便利です。

解説

完全なストリームベースのバリアント: リクエストペイロードとサーバーレスポンスの両方が TStream インスタンスを通じて処理されるため、どちらの側でも文字列変換のオーバーヘッドを回避します。バイナリペイロードを返すファイルアップロードにはこのオーバーロードを推奨します。

使用例

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;

メソッドに戻る