TsgcHTTP2Client › Methods › Post
同期 HTTP/2 POST を実行し、ストリームをアップロードしてレスポンスを受信するまでブロックします。
function Post(const aURL: string; const aSource: TStream): string;
| 名前 | タイプ | 説明 |
|---|---|---|
aURL | const string | POST リクエストを受信する絶対 URL。 |
aSource | const TStream | アップロードするリクエストボディを含むストリーム。その Size は content-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;
procedure Post(const aURL: string; const aSource: TStream; const aResponseContent: TStream);
| 名前 | タイプ | 説明 |
|---|---|---|
aURL | const string | POST リクエストを受信する絶対 URL。 |
aSource | const TStream | リクエストペイロードを提供するストリーム。 |
aResponseContent | const 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;