Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

pierrot_98

[델파이] TIdHTTP JSON 형식 POST - 바이너리 파일 받아오기 본문

IT/Delphi

[델파이] TIdHTTP JSON 형식 POST - 바이너리 파일 받아오기

pierrot_98 2019. 10. 31. 19:46
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
uese 
  IdHTTP; //추가
 
...
 
procedure TfrmSelvas.btnSaveClick(Sender: TObject);
var
  IDhttp: TIdHTTP;
  TRequest : TstringStream;
  TOut : TstringStream;
  URL, sString : String;
begin
  try
    IDhttp := TIdHTTP.Create(nil);
    URL := 'http://localhost:8080/pierrot/api';
 
    TRequest := TStringStream.Create('');
    TOut := TStringStream.Create('');
 
    IDhttp.ConnectTimeout      := 3000;
    IDhttp.ReadTimeout         := 3000;
    IDhttp.Request.ContentType := 'application/json;charset=UTF-8';
 
 
    TRequest.Clear;
    TOut.Clear;
 
 
    sString := '';
    sString := '{                                   '+#13#10+
             '   "FileName": "Pierrot.pdf",       '+#13#10+
              '   "Dir": "C:\dir"                  '+#13#10+
             '}                                   ';
 
    TRequest.WriteString(sString);
 
    TRequest.Position := 0;
 
    IDhttp.Post(URL, TRequest, TOut);
 
    TOut.SaveToFile('C:\pierrot.pdf');
  finally
    IDhttp.Free;
    TRequest.Free;
    TOut.Free;
  end;
end;
cs

 

해당 API가 바이너리 파일을 반환할 때

 

Post메소드 3번 째 인자에 리턴받을 스트림 넣어주고 SaveToFile 해주면

 

바이너리 파일 그대로 저장할 수 있다.

 

처음에 TOut := IDhttp.Post(URL, TRequest);

 

TOut.SaveToFile('C:\pierrot.pdf'); 했다가

 

바이너리 파일이 깨져서 저장되더라...

'IT > Delphi' 카테고리의 다른 글

[델파이] 레지스트리 등록  (0) 2020.01.15
[델파이] json parsing  (0) 2019.12.17
[델파이] 현재 모니터 구하기 및 폼 전체 화면  (0) 2019.10.31
[델파이] 마우스 커서 바꾸기  (0) 2019.09.24
[델파이] ShellExecute  (0) 2019.09.24
Comments