저는 인디9 버전 사용중인데.. 예제를 만들어봤습니다. 잘되는거 같은데 8버전에서 잘 될지는 모르겠네요 ^^
procedure TForm1.btnLoginClick(Sender: TObject);
var
sl: TStringList;
s: string;
begin
sl := TStringList.Create;
try
sl.Add('user_id=' + edtId.Text);
sl.Add('password=' + edtPw.Text);
sl.Add('securelogin=on');
IdHTTP1.HandleRedirects := True;
s := IdHTTP1.Post('
http://www.slrclub.com/login/process.php', sl);
if Pos('document.location.href=', s) > 0 then
ShowMessage('로그인 성공')
else
ShowMessage('로그인 실패');
finally
sl.Free;
end;
end;
Andres 님이 쓰신 글 :
: 안녕하세요,
:
: TIdMultiPartFormDataStream <-- 이게 아마도 INDY 버젼업을 해야만 사용할 수 있는것 같아서요.
: (현재 INDY 8.00.21 사용)
:
:
: INDY 컴포넌트중 IDHTTP를 이용해서 자동로그인을 해야하는데 TIdMultiPartFormDataStream 를 이용한 소스는
: 많은데, 저걸 이용하지 않는 방법은 없는것 같아 질문 올립니다.
:
:
: 테스트 중인 소스를 올려드릴테니 검토 후 댓글 부탁드립니다.
:
:
: 현재 소스로는 에러발생하지는 않지만 로그인이 되지않습니다.
:
:
: procedure TForm1.Button2Click(Sender: TObject);
: var
: Strs : TStringList;
: Response: TStringStream;
: Result : Boolean;
:
: begin
: Strs := TStringList.Create;
: Response := TStringStream.Create('');
: //
: Webbrowser1.Navigate('홈페이지MAIN화면');
: //
: try
: IdHTTP1.Request.UserAgent := 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; '+
: 'SV1; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; '+
: '.NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET CLR 1.1.4322)';
:
: Strs.Values['UserId'] := '아이디';
: Strs.Values['UserPwd'] := '비번';
: cbURL.text := '홈페이지LOGIN화면';
: IdHTTP1.Post(cbURL.text, Strs,Response);
: Memo1.Lines.Text := IdHTTP1.Get('홈페이지MAIN화면');
:
: finally
: Strs.Free;
: end;
: end;