TsgcHTTP2Client › 메서드 › Post
동기 HTTP/2 POST를 수행하여 스트림을 업로드하고 응답이 수신될 때까지 차단합니다.
function Post(const aURL: string; const aSource: TStream): string;
| Name | Type | 설명 |
|---|---|---|
aURL | const string | POST 요청을 받을 절대 URL입니다. |
aSource | const TStream | 업로드할 요청 본문을 포함하는 스트림입니다. 그 Size가 content-length 의사 헤더를 설정합니다. |
서버로부터 수신된 응답 본문을 문자열로 디코딩한 것입니다. (string)
전체 응답을 문자열로 반환할 수 있는 JSON 또는 form 데이터와 같은 텍스트 교환에 이 오버로드를 사용하십시오. 본문의 미디어 유형을 알리려면 호출하기 전에 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);
| Name | Type | 설명 |
|---|---|---|
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;