델파이

델파이/Delphi] https POST

il-ma-re 2024. 7. 10. 12:30
728x90

안녕하세요, 일마레입니다.

 

요즘 업체들과 데이터 연동하기

위해 API를 많이 사용하시는데요.

 

아래 소스 확인하시고

업무에 참고해 보시기를 바랍니다!


var
  idhttp :TIdHTTP;
  RequestHeaders: TStringList;
  RequestBody: TStringStream;
  Response: TBytesStream;
  IdHTTP : tidhttp;
  rbstr: RawByteString;
  URL, Res  :String;  
  SSLHandler: TIdSSLIOHandlerSocketOpenSSL;
begin
    IdHTTP := TIdHTTP.Create(nil);
    try
        SSLHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
        RequestHeaders := TStringList.Create;
        RequestBody := TStringStream.Create('', TEncoding.UTF8);
        Response := TStringStream.Create;
        IdHTTP.Request.Clear;
        { 없어도 무방하지만 버전에 맞춰 작성
        SSLHandler.SSLOptions.SSLVersions := [sslvTLSv1_2, sslvTLSv1_1];
        }
        IdHTTP.IOHandler := SSLHandler;

        IdHTTP.Request.ContentType := 'application/json';        
        IdHTTP.Request.Accept := 'application/json'; 
        { token을 전송해야 하는 경우 
        IdHTTP.Request.CustomHeaders.AddValue('Authorization', token값 );
        }
              try
                  Res := '전달한 값(json)';
                  RequestBody.WriteString(Res);
                  URL := 'URL' ;
                  rbstr := IdHTTP.Post(URL, RequestBody);
              except
                  on E: EIdHTTPProtocolException do
                  begin
                    ShowMessage('HTTP Protocol Exception: ' + E.Message);
                    ShowMessage ('HTTP Protocol Exception: ' + E.ErrorMessage);
                    ShowMessage ('Error Code: ' + IntToStr(E.ErrorCode));
                  end;
                  on E: Exception do
                  begin
                    ShowMessage ('General Exception: ' + E.Message);
                  end;
              end;
    finally
      RequestHeaders.Free;
      RequestBody.Free;
      SSLHandler.Free;
      IdHTTP.Free;
    end;
end;


도움이 되셨기를 바라며, 

좋은 하루 보내세요 ^^

 

 

728x90
LIST