procedure SearchAddress(AAddress: string);
function UrlEncode(ASrc: string): string;
var
I: Integer;
sTemp: AnsiString;
begin
Result := '';
sTemp := AnsiString(ASrc);
for I := 1 to Length(sTemp) do begin
if not (sTemp[I] in ['A'..'Z', 'a'..'z', '0'..'9']) then begin
if sTemp[I] = ' ' then
Result := Result + '+' //공백은 %20 대신 +로 변환
else
Result := Result + '%' + IntToHex(Ord(sTemp[I]), 2);
end else begin
Result := Result + sTemp[I];
end;
end;
end;
const
KEY = 'xxxxxxxxx'; //우체국에서 발급받은 키
var
sURL: string;
Stream: TStringStream;
begin
sCurrentPage := '1'; //조회할 페이지 번호
sCountPerPage := '20'; // 1회 조회에 가져올 주소 개수
sURL := 'http://biz.epost.go.kr/KpostPortal/openapi?' +
'regkey=' + KEY + '&' +
'target=postNew&' + //도로명주소
'query=' + UrlEncode(AAddress) + '&' +
'countPerPage=' + sCountPerPage + '&' +
'currentPage=' + sCurrentPage;
Stream := TStringStream.Create('', TEncoding.UTF8);
try
IdHTTP1.Get(sURL, Stream);
Memo1.Text := Stream.DataString;
finally
Stream.Free;
end;
end;
우체국 API를 사용하여 주소를 가져옵니다.
※XE7에서 테스트되었습니다.
API 참조 -> https://biz.epost.go.kr/ui/index.jsp
반응형