본문 바로가기

파이어몽키

[REST Client] RESTRequest 비동기 호출방법

델파이에서 이미 구축된 웹서비스와 연동하기 위해서 REST 클라이언트 컴포넌트를 이용할 수 있습니다.


그동안 비동기로 전송하는 부분이 궁금했는데 우크라이나(?) 개발자인 Dave Gill이 남긴  글(RestRequest.ExecuteAsync and TaniIndicator)을 보고 반가운 마음에 글을 남깁니다.


비동기로 웹서비스에 요청하면 아래의 장점이 있습니다.

  • 어플리케이션의 화면이 어는 현상이 없습니다.
  • 데이터 요청 시 TAniIndicator 컴포넌트로 진행여부를 표시할 수 있습니다.(동기로 호출 시 화면이 얼어 움직이지 않습니다.)
  • 백그라운드로 다른 작업을 진행할 수 있습니다.


글을 참고하니 이미 TRESTRequest 컴포넌트에는 비동기로 호출할 수 있는 ExecuteAsync 메소드가 있었습니다.(저만 몰랐네요.)


테스트를 진행해 봤습니다.(VCL에서 테스트 해봤습니다.)

아래와 같이 ExecuteAsync 호출 시 TProc(인자가 없는 프로시저)를 함께 전달하면 요청이 끝나고 호출됩니다.

호출된 메소드에서 응답데이터를 사용하도록 구현하면 비동기로 웹서비스를 연동할 수 있습니다.