클라이언트를 델파이로 만들고 서버 부분을 ASP나PHP 로 만들면..
쉽게..데이터베이스에 접근할수 있습니다.
웹페이지에 자동 로그인 한다던지 암튼... 웹페이지에 POST 로 전송하는 방법을
알아 보도록 하죠..
이번에도 인디 컴포넌트 idHTTP 컴포넌트를 이용할것입니다..
idHTTP 컴포넌트는 POST 란 프로시져를 이용하여 넘겨 보겠습니다
POST 프로시져의 사용법은
idHTTP.POST('넘길 URL','넘길값','결과값');
넘길 URL 은 값을 받을 ASP 파일이나.. PHP 파일 을 지정하면 되겠죠..
예) '
http://www.내페이지.com/login.asp';
그리고 넘길값을 만드는것이 중요한데..
우선 Data 변수를 TStringStream 형으로 선언합니다.
Data : TStringSTream;
Data 변수에 값을 집어 넣는 버은 아래와 같은 식으로
Data.WriteString(URLEncode('data=' + Trim(Edit1.Text) + '&'));
Data.WriteString(URLEncode('data1=' + Trim(Edit2.Text)));
웹프로그래밍에 약간 지식이 있으신분은
왜.. 'data=' + Trim(Edit1.Text) + '&' 이런식으로 코딩하셧는지
아실껍니다..
웹페이지에서 값을 받으면 "$data" 에..Edit1.text 값이 들어 가 있는것이죠..(흠냐 PHP 네...)
"&" 로 이어만 준다면 얼마든지 값을 넘길수 있습니다.
어느 정도 이해가 가셧나요..너무 설명을 못한거 같은데...
죄송....그리고 결과값은 TMemoryStream 형으로 받습니다.
그럼 전체 소스를 한번 볼까요.. 뭐 별거없습니다만은..
전체 소스
var
Data : TStreingStream;
Out : TMemoryStream;
begin
Data := TStringStream.create("");
Our := TMemorySTream.create;
//컨텐츠 타임 지정 컨텐츠 타입을 지정해 주셔야 제대로 넘어 감니다..
idHTTP.Request.ContentType := 'application/x-www-form-urlencoded';
Data.WriteString(URLEncode('data=' + Trim(Edit1.Text) + '&'));
Data.WriteString(URLEncode('data1=' + Trim(Edit2.Text)));
idHTTP.POST('URL',DATA,OUT);
ShowMessage(PCHar(OUR.DataString); // 결과값 표시
end;
URLEncode 를 사용하시려면 uses 에 idGlobal 유닛을 포함시켜야 합니다.